问题
Below is the error I keep getting. It seems to indicate a "post-install" issue with yodoctor. Sadly yodoctor is the advice given by the yeoman team to help with this issue. I have other node_modules installed (bower, grunt, typescript).
sh: yodoctor: command not found
npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/Cellar/node/5.0.0/bin/node" "/usr/local/bin/npm" "install" "-g" "yo"
npm ERR! node v5.0.0
npm ERR! npm v3.3.9
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! yo@1.5.0 postinstall: `yodoctor`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the yo@1.5.0 postinstall script 'yodoctor'.
npm ERR! This is most likely a problem with the yo package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! yodoctor
npm ERR! You can get their info via:
npm ERR! npm owner ls yo
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /Users/jesselawson/.node_modules_global/lib/node_modules/npm-debug.log
回答1:
This error is generally caused because someone used sudo
at some point and messed up their npm package directory permissions. As a rule of thumb, never ever use sudo.
So how can you fix it? Here's a couple troubleshooting points:
- Make sure you update npm to the latest version (
npm install -g npm
). npm 2.x had some race conditions that would try to runyodoctor
before it is installed. - Make sure the global npm module folders is chown/chmod to your user.
- Make sure npm module binaries is in your PATH.
- If nothing works, then you can force install it by running
npm i -g yeoman-doctor && npm i -g yo
- but that really is a last recourse solution.
回答2:
Just the following command would do the trick:
sudo npm install -g yo
if not, find where yo
is, add it to the path as follows:
export PATH="$PATH:<path where yo is installed>"
来源:https://stackoverflow.com/questions/33487085/yodoctor-command-not-found-when-installing-yo-from-terminal