即使我已经卸载了Homebrew的节点版本,npm仍然会将软件包安装到'/ usr/local/Cellar/node/...'

rob*_*ord 8 installation homebrew node.js npm gruntjs

这是一个漫长的夜晚.最初我从https://nodejs.org/上的软件包安装了节点.但是,由于某种原因(我现在不记得为什么!),我决定尝试卸载它,然后通过Homebrew安装节点.

一切似乎都没事.然后我运行了以下内容:

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

但是当我尝试运行任何Grunt任务时,我得到以下内容:

$ cd /some/project/that/used/grunt
$ grunt
-bash: grunt: command not found
Run Code Online (Sandbox Code Playgroud)

我尝试卸载Homebrew版本的节点:

$ brew uninstall node
Run Code Online (Sandbox Code Playgroud)

然后我再次安装了nodejs.org包.但是当我尝试安装一个npm包时,它最终会回到/usr/local/Cellar/node/...目录中:

$ sudo npm install grunt -g
Password:
grunt@0.4.5 /usr/local/Cellar/node/0.12.2_1/libexec/npm/lib/node_modules/grunt
??? which@1.0.9
...    
Run Code Online (Sandbox Code Playgroud)

我还找到了https://github.com/Homebrew/homebrew/issues/22408并尝试了符号链接:

$ ln -sf /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
Run Code Online (Sandbox Code Playgroud)

没运气.如何让npm停止安装包/usr/local/Cellar/...并让Grunt再次运行?谢谢!

rob*_*ord 6

这似乎有效.我发现以下内容/usr/local/lib/node_modules/npm/npmrc:

prefix=/usr/local/Cellar/node/0.12.2_1/libexec/npm
Run Code Online (Sandbox Code Playgroud)

我删除了这一行并重新安装了gruntgrunt-cli包.它现在有效.