Debugging jetbrains IDE外部工具的环境变量

Debugging jetbrains IDE外部工具的环境变量,debugging,webstorm,external-tools,Debugging,Webstorm,External Tools,我创建了webstorm外部工具,它会抛出一些错误,但从终端运行相同的任务效果很好。我知道这是因为在webstorm中运行时,$PATH变量的设置与终端案例的设置不同。在创建外部工具时,没有设置环境变量的选项。如何在webstorm/rubymine中为外部工具设置$PATH?我创建的外部工具是一项繁重的任务,如果有帮助的话,操作系统就是ubuntu 这是错误:运行grunt服务器时出错:无法运行程序“grunt”:错误=2,没有这样的文件或目录没有支持外部工具环境变量的方法 目前的解决办法:

我创建了webstorm外部工具,它会抛出一些错误,但从终端运行相同的任务效果很好。我知道这是因为在webstorm中运行时,$PATH变量的设置与终端案例的设置不同。在创建外部工具时,没有设置环境变量的选项。如何在webstorm/rubymine中为外部工具设置$PATH?我创建的外部工具是一项繁重的任务,如果有帮助的话,操作系统就是ubuntu

这是错误:运行grunt服务器时出错:无法运行程序“grunt”:错误=2,没有这样的文件或目录

没有支持外部工具环境变量的方法

目前的解决办法:

  • 根据,使GUI应用程序环境与终端中的相同
  • 通过
    bash--login
    运行脚本(外部工具运行bash-login shell,该shell设置环境并执行作为参数传递的脚本名称)
对于OSX:

在您喜爱的编辑器中打开
“/Applications/Webstorm.app/Contents/Info.plist”

查找以下部分并替换[您的路径值]

<key>LSEnvironment</key>
<dict>
    <key>PATH</key>
    <string>[Your Path Value]</string>
</dict>

我从Ifeanyi Isitor的一个奇妙的网站上得到了这个修复


我发现了一个针对linux的肮脏工作区。 创建一个文件(例如phpstorm_包装器)并将其放入:

#!/bin/bash
if [ $# > 1 ]; then
  exec "$@"
else
 eval "$1"
fi
保存并使其可执行

用法:

现在,您可以在“外部工具”中以
Program:
的形式运行包装器脚本,并将您喜欢的所有参数设置为
Arguments
inputfield

脚本将执行它并返回结果


如果需要使用ENV Variable,则必须像下面这样使用
ENV
命令:

env FASTLANE\u JSON\u KEY\u FILE=./release\u manager.JSON FASTLANE test


如果需要使用|(pipes),则phpstorm将其置于引号中。为了能够执行使用|的命令,请将
外部工具对话框中的整个文本字段“参数”封装在引号中

例如:


谢谢。你很好地解释了这个问题,我使用了你的第二种解决方案。
#!/bin/bash
if [ $# > 1 ]; then
  exec "$@"
else
 eval "$1"
fi