所以我搞砸了删除和安装node和npm以安装没有sudo的软件包,现在我无法在Webstorm中使用Grunt面板
消息是:
grunt --no-color --gruntfile /Users/max/repos/cb/Gruntfile.js --tasks /Applications/WebStorm.app/plugins/JavaScriptLanguage/grunt_js/tasks _intellij_grunt_tasks_fetcher
Cannot run program "grunt" (in directory "/Users/max/repos/cb"): error=2, No such file or directory
Looks like the grunt command isn't in your system path.
In order to view/run tasks, you need to install Grunt's command line interface globally:
npm install -g grunt-cli
For more information, please see http://gruntjs.com/getting-started
但奇怪的是,即使在Webstorm中,我也可以从终端运行grunt。 截图:
请注意我已安装grunt-cli
。
答案 0 :(得分:8)
您是否使用NVM管理Node版本?问题可能是由NVM用于修补环境变量的方式引起的。通常它将初始化逻辑放在〜/ .bashrc
中如果从终端启动WebStorm,它将继承终端环境(包括修改后的PATH环境变量,添加NVM_DIR env var等)。在这种情况下,加载Grunt任务没有问题,因为WebStorm看到了正确的PATH值。
如果从桌面(而不是从终端)发起WebStorm,WebStorm会看到错误的PATH值并且无法加载Grunt任务。
如果您使用bash作为shell,则解决方法可能如下:编辑WebStorm启动器并将命令设置为" / bin / bash -l -c" / path / to / webstorm.sh&#34 ;.此命令将执行bash登录(即读取.bashrc / .bash_profile文件),之后将运行webstorm.sh。
希望这会有所帮助。
答案 1 :(得分:5)
我已在 Mac 和 Linux 上解决了这个问题,~/.bash_profile
文件中有适当的条目。
WebStorm以:
开头/bin/bash -l -c "/path/to/webstorm.sh"
-l
(破折号L)选项将bash设置为登录模式。这意味着bash将按顺序读取文件:
/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
在运行-c选项后的脚本之前。
我已将export PATH
添加到~/.bash_profile
并且它有所帮助。
如果在PATH
中设置~/.bashrc
,那么它将无效,因为在登录模式下,此文件未被读取。
~/.bash_profile
:export PATH=/usr/local/bin:$PATH
export NVM_DIR="/Users/citricacid/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
这个答案也帮助了我很多。
答案 2 :(得分:3)
我遇到了同样的问题而且我做了:
“首先在全球范围内安装grunt cli工具:
npm install -g grunt-cli (或者可能是sudo npm install -g grunt-cli)。
您可以通过输入grunt --version
来确定其有效现在,您可以在项目中安装当前版本的Grunt。所以从您项目的位置......
npm install grunt --save-dev“
您可以在以下网址找到更多信息:
答案 3 :(得分:0)
我遇到了同样的问题。我通过在/usr/sbin
和/usr/bin to /usr/local/bin/grunt
中创建符号链接来解决这个问题。
希望它会对你有所帮助。
答案 4 :(得分:0)
在这里查看答案后,我用这个方法解决了这个问题: http://ify.io/getting-webstorm-external-tools-to-work-on-webstorm-on-osx/
首先,如果WebStorm当前处于打开状态,请将其关闭。然后将以下条目添加到'/Applications/Webstorm.app/Contents/Info.plist'文件中。
<key>LSEnvironment</key>
<dict>
<key>PATH</key>
<string>[Your Path Value]</string>
</dict>
[Your Path Value]
应替换为系统路径的值(假设您已经可以从终端运行相关命令...即npm,grunt等)。请注意,可以使用以下终端命令检索系统路径:
echo $PATH
此命令只是从PATH
检索~/.MacOSX/environment.plist
值。
我没有采取这一步骤并且有效,包括它不适合你
现在使用以下命令从终端刷新更新的Info.plist文件:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/WebStorm.app
当没有从终端启动WebStorm时,外部工具现在也可以工作。
答案 5 :(得分:0)
我更新了本地nvm文件夹中的节点:
/Users/daniel/.nvm/v0.10.33/bin/node
到
/Users/daniel/.nvm/v0.12.2/bin/node
我收到了这个错误:
Failed to list gulp tasks in moda-web/gulpfile.js: external process finished with error exit code 8
/Users/daniel/.nvm/v0.10.33/bin/node
/Users/daniel/.nvm/v0.10.33/lib/node_modules/gulp/bin/gulp.js --no-color --gulpfile /Users/daniel/workspace/www/moda-history/moda-web/gulpfile.js --tasks
Error: `libsass` bindings not found. Try reinstalling `node-sass`?
at getBinding (/Users/daniel/workspace/www/moda-history/moda-web/node_modules/gulp-sass/node_modules/node-sass/lib/index.js:22:11)
at Object.<anonymous> (/Users/daniel/workspace/www/moda-history/moda-web/node_modules/gulp-sass/node_modules/node-sass/lib/index.js:188:23)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/Users/daniel/workspace/www/moda-history/moda-web/node_modules/gulp-sass/index.js:3:17)
at Module._compile (module.js:456:26)
Process finished with exit code 8
我没有任何幸运地尝试了一切。奇怪的是,在WebStorm终端选项卡上,我有正确的节点版本:
$ node -v
v0.12.2
但是&#34;运行Gulp任务&#34;它继续使用v0.10.33
的工具我的解决方案: 创建新项目
就是这样。
创建新项目后,一切都按预期工作。
希望有所帮助
BR
答案 6 :(得分:0)
通过从终端运行open -a webstorm
解决了该问题。不理想,但至少WebStorm获得与终端相同的PATH。