【问题标题】:Couldn't find the 'yo' binary. Make sure it's installed and in your $PATH. Could you tell me what the problem is?找不到“哟”二进制文件。确保它已安装并在您的 $PATH 中。你能告诉我问题是什么吗?
【发布时间】:2019-09-27 10:30:00
【问题描述】:
I'm using npm install -g yo gulp to install yeoman and this is the error I'm getting  
npm WARN deprecated cross-spawn-async@2.2.5: cross-spawn no longer requires a build toolchain, use it instead
C:\Usr\local\gulp -> C:\Usr\local\node_modules\gulp\bin\gulp.js
C:\Usr\local\yo -> C:\Usr\local\node_modules\yo\lib\cli.js
C:\Usr\local\yo-complete -> C:\Usr\local\node_modules\yo\lib\completion\index.js

> yo@3.1.0 postinstall C:\Usr\local\node_modules\yo
> yodoctor


Yeoman Doctor
Running sanity checks on your system

√ No .bowerrc file in home directory
√ Global configuration file is valid
√ NODE_PATH matches the npm root
√ No .yo-rc.json file in home directory
√ Node.js version
{ Error: Couldn't find the 'yo' binary. Make sure it's installed and in your $PATH
    at notFoundError (C:\Usr\local\node_modules\yo\node_modules\cross-spawn-async\lib\enoent.js:8:11)
    at verifyENOENT (C:\Usr\local\node_modules\yo\node_modules\cross-spawn-async\lib\enoent.js:43:16)
    at ChildProcess.cp.emit (C:\Usr\local\node_modules\yo\node_modules\cross-spawn-async\lib\enoent.js:30:19)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'spawn yo',
  cmd: 'C:\\WINDOWS\\system32\\cmd.exe /s /c "yo "--version""' }
× yo version
{ Error: Couldn't find the 'yo' binary. Make sure it's installed and in your $PATH
    at notFoundError (C:\Usr\local\node_modules\yo\node_modules\cross-spawn-async\lib\enoent.js:8:11)
    at verifyENOENT (C:\Usr\local\node_modules\yo\node_modules\cross-spawn-async\lib\enoent.js:43:16)
    at ChildProcess.cp.emit (C:\Usr\local\node_modules\yo\node_modules\cross-spawn-async\lib\enoent.js:30:19)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'spawn yo',
  cmd: 'C:\\WINDOWS\\system32\\cmd.exe /s /c "yo "--version""' }
√ npm version

Found potential issues on your machine :(
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules\gulp\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

+ gulp@4.0.2
+ yo@3.1.0
updated 2 packages in 23.31s

【问题讨论】:

    标签: yeoman yeoman-generator


    【解决方案1】:

    运行以下命令查看 npm 将全局包放在哪里

    npm config get prefix

    你会得到类似这样的输出

    /usr/local/Cellar/node/10.5.0_1

    复制输出或路径,然后使用任何代码编辑器打开您的 .bashrc 或 .zshrc 文件,具体取决于您使用的终端并像这样粘贴

    export PATH="$PATH:"/usr/local/Cellar/node/10.5.0_1/bin/""

    然后保存后运行

    source ~/.zshrc

    【讨论】:

    • 我已经通过删除 node js npm 文件然后卸载并重新安装 nodejs 解决了上述问题。我猜这个问题一定是由于安装不完整或不正确造成的。
    【解决方案2】:

    就像 Xander Cage 所说的那样。

    1. 我已经卸载了node.js -> procedure here
    2. 我已经重新启动了我的电脑。
    3. 然后我又安装了node.js

    它工作。

    【讨论】:

    • 谢谢你的帮助:)
    【解决方案3】:

    以上对我根本不起作用。

    以下解决了我的问题: 清理安装的 nodejs 并按照 dv-here 在线程中的步骤进行操作:https://github.com/zkat/npx/issues/100 请注意,我的 npm 一直指向 C:\usr...

    我想我将npm config set prefix= 设置为错误的东西,因此我得到了错误。这是我修复它的方法:

    以“管理员”模式打开 CMD。

    npm cache clear --force
    
    npm install
    
    npm config set cache C:\Users\myname\AppData\Roaming\npm-cache
    
    npm config set prefix C:\Users\myname\AppData\Roaming\npm
    

    【讨论】:

    • 工作,谢谢!我的情况不需要“管理员”模式。
    【解决方案4】:

    我刚刚在 MacOS 上遇到了这个问题,发现我所有的全局 npm 二进制文件都被符号链接到 /usr/local/bin 目录中,yo 除外。我使用这个命令创建了一个符号链接:

    ln -s /usr/local/Cellar/node/12.10.0/bin/yo /usr/local/bin/yo

    (您的可能会有所不同)

    yo 现在可以调用了。

    【讨论】:

      【解决方案5】:

      我有同样的问题,我真的不想卸载 nodejs,因为我安装了很多包。 也尝试了第二个答案,但没有奏效。

      然后我发现这个打勾了,就是关闭了:

      https://github.com/yeoman/yeoman/issues/1716

      用 yarn 命令安装对我有用。

      yarn global add yo
      

      看来安装过程中还安装了二进制文件。

      没关系尝试安装它时 npm 得到相同的错误,所以寻找提供更多信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-23
        • 1970-01-01
        • 2017-02-13
        • 2022-11-17
        • 2013-01-21
        • 1970-01-01
        • 2019-07-22
        • 1970-01-01
        相关资源
        最近更新 更多