按照这些说明,我尝试使用npm两次安装yeoman: http://yeoman.io/learning/index.html
第一次失败后,我使用以下说明卸载了节点: How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)然后,我安装了nvm和node / npm(通过nvm),出现一个错误:
[Yeoman Doctor] Uh oh, I found potential errors on your machine
---------------
[Error] NPM root value is not in your NODE_PATH
[info]
NODE_PATH = /Users/joanna/.nvm/v0.10.22/lib/node_modules:.
NPM root = /Users/joanna/.node/lib/node_modules
[Fix] Append the NPM root value to your NODE_PATH variable
Add this line to your .bashrc
export NODE_PATH=$NODE_PATH:/Users/joanna/.node/lib/node_modules
Or run this command
echo "export NODE_PATH=$NODE_PATH:/Users/joanna/.node/lib/node_modules" >> ~/.bashrc && source ~/.bashrc
我粘贴了该命令,然后我再次运行npm install -g yo
。
再次按照自耕农网站的指示,仍然找不到自耕农。我收到此错误: -bash:yo:找不到命令
有什么问题? Yeoman医生说:“一切都好看!”
答案 0 :(得分:23)
我需要做的就是将此行添加到.bash_profile
export PATH="$PATH":~/.node/bin
你可以执行这个来自动添加它:
printf "\nexport PATH=\"\$PATH\":%s\n" ~/.node/bin >> ~/.bash_profile
在OS X 10.9,10.10,10.11和Ubuntu 14.04上测试
答案 1 :(得分:18)
简短版:
在shell中,键入以下命令:
npm config set prefix ~/npm
echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc
然后重新安装Yeoman:
npm install -g yo
然后一切都应该正常工作!
<强>解释强>
有一个类似的情况,除了yo命令工作,但安装后没有出现任何已安装的生成器,这解决了这个问题。
问题是您的npm路径设置为/ usr / local,这是一个需要root / sudo权限的目录,因为yo是一个用户命令,它不应该以超级用户身份运行,如果你' ll尝试运行sudo yo
,Yeoman会明确告诉你。
我也试过chown -R $USER:$USER /usr/local
和chmod -R /user/local +rw
,但没有一个帮助过。
请记住,以前安装在/ usr / local中的节点模块(yo生成器也是节点模块)可能不再可用,并且需要重新安装。
答案 2 :(得分:12)
对于我在Ubuntu上,只有以下内容对我有用...
在Ubuntu 14.04.2上测试
这是使用ubuntu-trusty-64在VirtualBox上基础安装Ubuntu 14.04.2。
我刚安装了node和npm,它们运行良好。
npm install -y -g yo
echo export PATH="$HOME/npm/bin:$PATH" >> ~/.bashrc
npm config set prefix ~/npm
echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc
npm install -y -g yo
是的我必须安装yeoman,修复路径问题,然后重新安装yeoman。
以上解释来自Oleg Tikhonov和bfred.it
答案 3 :(得分:10)
问题的根源是您在同时使用NVM时设置了NODE_PATH。当您使用NVM时,您根本不应该有NODE_PATH变量,因为NVM会在其特定于版本的根目录中安装全局包。
删除NODE_PATH中的所有软件包,删除环境变量,然后安装yo以及所需的生成器或任何其他全局软件包。您将看到它停止抱怨并且所有内容都在与当前版本匹配的nvm子目录中结束。
当您在NVM中开始使用其他节点版本时,请重新安装全局程序包。这样可以保持所有内容整齐有序的版本。
此处有关此讨论的更多信息: https://github.com/creationix/nvm/pull/97
答案 4 :(得分:4)
在尝试上述建议后,我注意到/Users/joanna/.node/bin/yo
正如预期的那样安装了yeoman。我使用
/usr/local/bin
中设置了与yo,grunt和bower的符号链接
ln -s /Users/joanna/.node/bin/yo /usr/local/bin/yo
ln -s /Users/joanna/.node/bin/grunt /usr/local/bin/grunt
ln -s /Users/joanna/.node/bin/bower /usr/local/bin/bower
现在一切正常,但我担心链接可能会在将来引发问题。有更好的解决方案吗?
答案 5 :(得分:4)
再加上,我使用的是OS X 10.11.1,史蒂夫提到的代码也适用于我。
npm install -y -g yo
echo export PATH="$HOME/npm/bin:$PATH" >> ~/.bashrc
npm config set prefix ~/npm
echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc
npm install -y -g yo
答案 6 :(得分:0)
我用过:
$HOME/npm/bin
它非常有效!
在 MAC OSX
中答案 7 :(得分:0)
检查npm
的安装位置:
where npm
运行以上命令将列出npm
所在的目录,如下所示:
/usr/local/Cellar/node/5.1.0/libexec/npm/bin/npm
将路径复制到bin
文件夹并将其导出为PATH
变量,如下所示:
export PATH=$PATH:/usr/local/Cellar/node/5.1.0/libexec/npm/bin
答案 8 :(得分:0)
就我而言,我必须执行:
mat-card
然后设置nvm版本
getJobStatus()
它有效