下面是我不断得到的错误。这似乎表明yodoctor存在"安装后"问题。不幸的是,yodoctor是由yeoman团队提供的帮助解决这个问题的建议。我安装了其他node_module(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
此错误通常是由于有人在某个时刻使用了sudo
并破坏了他们的npm包目录权限而导致的。根据经验,永远不要使用sudo。
那么你该怎么解决呢?以下是几个故障排除点:
- 请确保将npm更新到最新版本(
npm install -g npm
)。npm2.x有一些竞争条件,在安装之前会尝试运行yodoctor
- 确保全局npm模块文件夹对于您的用户是
chown
/chmod
- 确保npm模块二进制文件在您的PATH中
- 如果什么都不起作用,那么您可以通过运行
npm i -g yeoman-doctor && npm i -g yo
强制安装它,但这确实是最后的解决方案
只需以下命令即可完成任务:
sudo npm install -g yo
如果没有,请查找yo
所在的位置,将其添加到路径中,如下所示:
export PATH="$PATH:<path where yo is installed>"