Webstorm不承认Grunt

时间:2014-05-29 06:57:30

标签: macos gruntjs webstorm

所以我搞砸了删除和安装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。 截图: enter image description here

请注意我已安装grunt-cli

7 个答案:

答案 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,那么它将无效,因为在登录模式下,此文件未被读取。

我的Mac ~/.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

其他帮助

这个答案也帮助了我很多。

https://stackoverflow.com/a/21712034/1949605

答案 2 :(得分:3)

我遇到了同样的问题而且我做了:

“首先在全球范围内安装grunt cli工具:

npm install -g grunt-cli (或者可能是sudo npm install -g grunt-cli)。

您可以通过输入grunt --version

来确定其有效

现在,您可以在项目中安装当前版本的Grunt。所以从您项目的位置......

npm install grunt --save-dev“

您可以在以下网址找到更多信息:

Node package ( Grunt ) installed but not available

答案 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。