如何解决安装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中,键入以下命令:

  1. npm config set prefix ~/npm

  2. echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc

  3. 然后重新安装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文件夹,并将其作为PATHvariables导出,如下所示:

 export PATH=$PATH:/usr/local/Cellar/node/5.1.0/libexec/npm/bin