我试图用优胜美地在Mac上安装grunt。节点已经安装了最新版本。如果我在终端中输入“ node -v”,我会得到v0.12.5行。非常好。但是当我想用npm安装东西时,我只会得到一个错误…
我尝试了“ sudo npm install -g grunt-cli”,“ sudo npm install npm -g”以及“ npm -v”,我总是收到此错误…
Error: Cannot find module 'are-we-there-yet' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:278:25) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (/usr/local/Cellar/node/0.10.22/lib/node_modules/npm/node_modules/npmlog/log.js:2:16) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17)
有人知道这是什么问题还是更好的解决方案?
您已经npm删除了一些依赖项,从而破坏了它。
npm
are-we-there- yet是npmlog其npm自身的依赖项,因此您以某种方式删除了它。对于这种情况,通常的简单解决方案是重新安装软件包,但是如果npm无法运行,则该方法将无效。幸运的是,npmtarball附带有依赖项,因此从头开始安装npm就像打开tarball一样简单。
are-we-there- yet
npmlog
1)转到全局node_modules目录(npm root -g如果可以运行它将显示什么):
node_modules
npm root -g
$ cd /usr/local/lib/node_modules
2)删除损坏的npm目录或将其移动到其他位置(请注意,您可能需要为此和以下步骤提升权限):
$ mv npm /tmp
3)npm从注册表中下载并解压缩(例如,您要安装的替代版本3.10.8):
3.10.8
$ curl -L registry.npmjs.com/npm/-/npm-{VERSION}.tgz | tar xz --transform="s:^package:npm:"
您可以使用以下安装脚本自动执行其中的一些操作:
$ curl -L https://www.npmjs.com/install.sh | sh
此时npm应重新工作。