为什么Grunt不会将自己添加到shell中?

ste*_*and 38 macos gruntjs

我在安装grunt时遇到问题.所有文档和博客文章教程都说运行:

npm install -g grunt
Run Code Online (Sandbox Code Playgroud)

然后允许你从终端运行grunt命令.

我有一种情况,grunt似乎安装没有错误,但在终端中输入命令grunt仍然给出:

-bash: grunt: command not found
Run Code Online (Sandbox Code Playgroud)

我能做错什么?我在哪里可以找到grunt手动将它添加到我的BASH配置文件中?

asg*_*oth 108

从Grunt版本0.4(已在1或2周前发布)开始,您需要全局安装grunt命令行工具(如果需要,请sudo在命令之前使用):

npm install -g grunt-cli
Run Code Online (Sandbox Code Playgroud)

在项目位置,然后安装最新的grunt版本:

npm install grunt --save-dev
Run Code Online (Sandbox Code Playgroud)

选项--save-dev会将npm配置保存在package.json文件中,这样可以更轻松地安装或重新安装依赖项(仅使用npm install).


bbr*_*202 13

尝试使用详细标志运行安装:

npm install -g grunt --verbose
Run Code Online (Sandbox Code Playgroud)

您可以看到它的安装位置(例如/ usr/local/share/npm/bin/grunt).然后检查你的路径:

echo $PATH
Run Code Online (Sandbox Code Playgroud)

如果路径不包含安装仓位置,请修改bash配置文件中的路径以包含bin目录的位置,然后在新终端中再次尝试grunt.

更新:Grunt 0.4改变了安装过程.如需0.4安装,请参阅下面的答案.

  • 这种解决方法很受欢迎,但它没有回答实际问题"为什么Grunt不会将自己添加到shell?". (3认同)
  • 非常感谢.添加/ usr/local/share/npm/bin使它正常工作. (2认同)
  • 这不应该是公认的答案; 请参阅下面的"sudo nom install -g grunt-cli"答案. (2认同)

ape*_*per 6

似乎grunt在当前版本0.4.0中没有安装bin命令.最后一个0.3.x版本是0.3.17,它支持bin命令.要从命令行运行grunt,您需要安装grunt命令行grunt-cli:

npm install -g grunt-cli --verbose
Run Code Online (Sandbox Code Playgroud)


小智 6

使用Homebrew安装了节点,这是我的解决方案:

  • set-for -g(GLOBAL)安装目录目录:npm config set prefix /Users/YOURNAME/.node/

  • 确保编辑PATH:sudo nano~/.profile

  • 添加到路径:export PATH ="/ Users/YOURNAME/.node/bin:"$ PATH

  • 然后更新源:source~/.profile

遵循这些步骤将允许使用npm install -g somePKG安装的任何软件包放置在正确的位置,而不管您当前的工作目录.通过正确更新$ PATH命令行功能将起作用.

信息基于:修复npm权限 - bit.ly/1CmIyqx