【问题标题】:How to fix "yo: command not found" after installing Yeoman安装 Yeoman 后如何修复“yo: command not found”
【发布时间】:2014-02-08 06:50:42
【问题描述】:

按照这些说明,我尝试使用 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

再次按照 yeoman 站点的说明进行操作后,仍然找不到 yeoman。我收到此错误: -bash: yo: 找不到命令

怎么了? Yeoman Doctor 说:“一切看起来都很好!”

【问题讨论】:

  • 错误提示NPM PATH和NODE PATH应该是smae

标签: macos node.js npm osx-mountain-lion yeoman


【解决方案1】:

就我而言,我必须执行:

npm config delete prefix

然后设置一个nvm版本

nvm use 8

它可以工作

【讨论】:

  • 在此之后不得不重新安装你,但效果很好
【解决方案2】:

检查您的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

【讨论】:

    【解决方案3】:

    我需要做的就是添加这一行到.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 上测试

    【讨论】:

    • 在 OSX 上对我来说是以下行:export PATH=${PATH}:~/.node/bin 并且不要忘记重新启动提示以使更改生效。
    • @nilsi AFAIK 它做同样的事情;你的只是使用不同的字符串插值方法
    【解决方案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
    

    【讨论】:

    • 如果调用“npm install -y -g yo”时出现任何错误,请按照建议运行“sudo npm install -y -g yo”。
    【解决方案5】:

    我用过:

    $HOME/npm/bin

    而且效果很好!

    MAC OSX

    【讨论】:

      【解决方案6】:

      对于 Ubuntu 上的我来说,只有以下对我有用...

      Ubuntu

      在 Ubuntu 14.04.2 上测试

      这是使用 ubuntu-trusty-64 在 VirtualBox 上安装 Ubuntu 14.04.2 的基础版本。

      我刚刚安装了 node 和 npm fresh,它们运行良好。

      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

      【讨论】:

        【解决方案7】:

        短版:

        在您的 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

        那么一切都应该正常!

        说明:

        有类似的情况,除了 yo 命令确实有效,但安装后没有出现任何已安装的生成器,这解决了问题。

        问题是你的 npm 路径设置为 /usr/local,这是一个需要 root/sudo 权限的目录,因为 yo 是一个用户命令,它不应该作为超级用户运行,如果你'我会尝试运行sudo yo,Yeoman 会明确告诉你。

        我也尝试过chown -R $USER:$USER /usr/localchmod -R /user/local +rw,但这些都没有帮助。

        请记住,之前安装在 /usr/local 中的节点模块(生成器也是节点模块)可能不再可用,需要重新安装。

        【讨论】:

        • 非常感谢您的建议。我尝试了您的建议,并确认我的 $NODE_PATH 和我的 NPM 根是相等的。 (我在 Mac 上,所以值与您给出的值略有不同。$NODE_PATHnpm config get prefix 都是 /Users/joanna/.node/lib/node_modules)。我已经尝试重新安装 Yeoman,但我仍然得到 yo: command not found。有什么想法吗?
        • 按照这个提示,没有骰子,仍然哟:找不到命令... :(
        • 为我工作。谢谢!
        • 工作就像一个魅力!谢谢
        【解决方案8】:

        在尝试上述建议后,我注意到 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
        

        现在一切正常,但我担心这些链接将来可能会导致问题。有没有更好的解决方案?

        【讨论】:

        • 对任何运行 Linux 的人的快速说明。您可能需要将路径更改为以下内容: ln -s /home/joanna/.node/bin/yo /usr/local/bin/yo
        【解决方案9】:

        问题的根源是您在使用 NVM 的同时设置了 NODE_PATH。当你使用 NVM 时,你根本不应该有 NODE_PATH 变量,因为 NVM 将全局包安装在其版本特定的根目录中。

        删除 NODE_PATH 中的所有包,删除环境变量,然后安装 yo 和生成器或您需要的任何其他全局包。你会看到它停止抱怨,一切都在与当前版本匹配的 nvm 子目录中结束。

        当您开始在 NVM 中使用不同的 Node 版本时,请重新安装全局包。这将使所有内容按版本整齐排列。

        有关此讨论的更多信息在这里: https://github.com/creationix/nvm/pull/97

        【讨论】:

          猜你喜欢
          • 2019-12-09
          • 2016-05-20
          • 2020-01-17
          • 2021-05-16
          • 2019-05-28
          • 1970-01-01
          • 2021-05-15
          • 1970-01-01
          • 2014-12-15
          相关资源
          最近更新 更多