如何解决安装Yeoman后“哟:命令未find”
遵循这些指示,我试图用npm安装yeoman两次:http: //yeoman.io/learning/index.html
第一次失败后,我使用这些指令卸载节点: 如何完全卸载Node.js,并从开始(Mac OS X)重新安装然后,我安装了nvm和节点/ 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:哟:命令未find
哪里不对? 医师医生说:“一切看起来都不错!”
问题的根源在于,您在同时使用NVM时设置了NODE_PATH。 使用NVM时,根本不应该有NODE_PATHvariables,因为NVM将全局程序包安装在版本特定的根目录下。
删除NODE_PATH中的所有软件包,删除环境variables,并安装您需要的哟和生成器或任何其他全局软件包。 你会看到它停止抱怨,一切都在与当前版本匹配的nvm子目录中结束。
当您在NVM中开始使用不同的节点版本时,请重新安装全局程序包。 这将使所有的东西整齐地按照版本的意思组织起来。
更多信息在这里讨论: https : //github.com/creationix/nvm/pull/97
我所需要做的就是将这一行添加到.bash_profile
export PATH="$PATH":~/.node/bin
你可以执行这个来自动添加它:
printf "\nexport PATH=\"\$PATH\":%s\n" ~/.node/bin >> ~/.bash_profile
testingOS X 10.9,10.10,10.11和Ubuntu 14.04
简洁版本:
在您的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
那么一切都应该正常工作!
说明:
有一个类似的条件,除了哟命令工作,但任何安装的发电机没有出现后,安装它们,这解决了这个问题。
问题是你的npmpath被设置为/ usr / local,这是一个需要root / sudo权限的目录,因为yo是一个用户命令,不应该以超级用户身份运行,如果你尝试运行sudo yo
,Yeoman明确告诉你。
我也尝试chown -R $USER:$USER /usr/local
,和chmod -R /user/local +rw
,但没有一个帮助。
请记住,之前安装在/ usr / local中的节点模块(yo生成器也是节点模块)可能不再可用,并且需要重新安装。
对于我在Ubuntu上,只有以下工作对我来说…
Ubuntu的
在Ubuntu 14.04.2上testing
这是使用ubuntu-trusty-64在VirtualBox上安装Ubuntu 14.04.2的基础。
我刚刚安装了节点和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,修复path问题,然后重新安装yeoman。
以上的解释来自Oleg Tikhonov和bfred.it
在尝试了上述build议之后,我发现yeoman按照预期安装在/Users/joanna/.node/bin/yo
。 我在/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
现在一切正常,但是我担心这些链接可能会在将来导致问题。 有更好的解决scheme吗?
只是补充一点,我使用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
我用了 :
$HOME/npm/bin
它非常有效!
在MAC OSX中
检查你的npm
安装位置:
where npm
运行上面的命令将列出npm
所在的目录,如下所示:
/usr/local/Cellar/node/5.1.0/libexec/npm/bin/npm
将path复制到bin
文件夹,并将其作为PATH
variables导出,如下所示:
export PATH=$PATH:/usr/local/Cellar/node/5.1.0/libexec/npm/bin