Couldn't find the 'yo' binary. Make sure it's installed and in your $PATH. Could you tell me what the problem is?

时光怂恿深爱的人放手 提交于 2020-05-15 10:00:24

问题


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

回答1:


Like Xander Cage said.

  1. I have uninstalled node.js -> procedure here
  2. I have restarted my PC.
  3. Then I installed again node.js

It work.




回答2:


Run the following command to see where npm puts global packages

npm config get prefix

You'll get output similar to this

/usr/local/Cellar/node/10.5.0_1

Copy the output or path and then using any code editor open your .bashrc or .zshrc file depending on the terminal you use and paste like so

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

Then after saving run

source ~/.zshrc




回答3:


The above didn't work for me at all.

The following solved my problem: clean installed nodejs and followed steps by dv-here in thread: https://github.com/zkat/npx/issues/100 Note that my npm kept pointing to C:\usr...

I think I set the npm config set prefix= to something mistakenly due to which I was >getting the error. Here's how I fixed it:

Open CMD in "Administrator" mode.

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:


I just ran into this issue on MacOS, and saw that all of my global npm binaries were symlinked into the /usr/local/bin directory, except for yo. I created a symlink using this command:

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

(Yours may vary)

And yo is now callable.




回答5:


I had same issue and I really didn't want uninstall nodejs as I have a lot of package installed. Tried also with the second answer and did not worked.

Then I found this ticked, that is been closed:

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

install with yarn command for me worked.

yarn global add yo

Seem then the installation went through with also binary installed.

Nevermind try to install it with npm getting same error, so looking for provide more infos



来源:https://stackoverflow.com/questions/58132747/couldnt-find-the-yo-binary-make-sure-its-installed-and-in-your-path-could

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!