使用npm命令时,找不到模块“npmlog”错误信息
今天是我第一份工作的第一天,通过更新我的Mac(OSX)上的节点和npm来设置我的开发环境之后,我似乎破了一些东西。 每次我尝试在我的命令行中使用npm(npm init,npm install等)时,我得到这个错误信息:
module.js:339
扔呃;
错误:找不到模块'npmlog'
在Function.Module._resolveFilename(module.js:337:15)
在Function.Module._load(module.js:287:25)
在Module.require(module.js:366:17)
在require(module.js:385:17)
在/usr/local/lib/node_modules/npm/bin/npm-cli.js:20:13
在对象。 (/usr/local/lib/node_modules/npm/bin/npm->cli.js:76:3)
在Module._compile(module.js:425:26)
在Object.Module._extensions..js(module.js:432:10)
在Module.load(module.js:356:32)
在Function.Module._load(module.js:311:12)
没有太多的错误消息,并且堆栈跟踪也无法帮助我。 以下是我所尝试的:
- search了一下Stackoverflow,虽然也有类似的问题,但是人们已经可以使用
npm <something>
来解决他们的问题,我不能这样做。 - 卸载并重新安装npm – 没有工作,因为我不能使用npm命令,所以像
sudo npm uninstall npm -g
这样的东西不起作用。 - 从
.npm
目录中删除npmlog
目录,然后再次将github repo直接克隆到该目录。
希望你们之前遇到过这个问题,或者对如何解决这个问题有个想法。 任何帮助表示赞赏。
以下是适合我的步骤:
$ sudo rm -rf /usr/local/bin/npm $ sudo rm -rf /usr/local/lib/node_modules/npm $ brew uninstall node $ brew install node
这里是一个很好的链接Fixing npm On Mac OS X for Homebrew Users
。
当尝试在mac下升级node.js
时使用以下命令
rm -rf /usr/local/lib/node_modules brew uninstall node brew install node --without-npm echo prefix=~/.npm-packages >> ~/.npmrc curl -L https://www.npmjs.com/install.sh | sudo sh
试试curl -0 -L http://npmjs.org/install.sh | sudo sh
curl -0 -L http://npmjs.org/install.sh | sudo sh
遵循redirect。 另外请注意,根据您的用户权限,我在sudo sh命令之前添加了sudo。
我刚刚在Mac上遇到了这个问题,仔细观察,在我看来,问题是在某些情况下Node应用程序目录中的node/bin
目录中的链接到lib/node_modules/npm/bin
被文件本身取代,这就是为什么它失败(为什么所有的各种脚本方法修复它,因为他们正确地保留文件链接)。
如果我用cp
复制node-v6.9.4-darwin-x64
的内容,那么我得到这个问题,但是如果我使用Finder复制这些文件,那么我不会。 所以,如果你不想使用Finder(或者mv
或rsync -a
也可以工作;我没有testing过),你可以通过手动重新创build链接来修复它。
希望这有助于有人来这里解决这个问题。
编辑:我只是不小心在Mac上find问题的原因(对于我的特定情况,无论如何):我一直使用cp -r
来复制目录。 这是因为我老了,不再学习新事物。 正确的方法是cp -R
,它正确地复制一切,因为它应该。
我不一定像刚刚开始一样“解决”问题。 我使用这个post来做到这一点: 如何完全卸载Node.js,并从开始(Mac OS X)重新安装
如果其他人知道如何解决这个问题,或者知道我做了什么,我还是会很感兴趣。
在我的情况下,我只是brew uninstall node
并从官方网站下载,为我工作
我遇到了同样的错误。 这是在没有连接到互联网的服务器上。 我曾看过Github上的一个线程,有时候提到符号链接可以在执行拷贝或其他文件操作的时候被删除。 所以我在节点目录上find有问题的服务器的符号链接,并find没有find的符号链接。 在工作的服务器上执行相同的符号链接文件。
我去了NODE_HOME / bin并做了一个ls -l
果然我有一个npm文件。 在工作服务器上执行相同的步骤,npm文件是一个符号链接。 要修复有问题的服务器,我执行了以下操作:
RM npm
ln -s ../lib/node_modules/npm/bin/npm-cli.js npm
在REDHAT linux中安装量angular器时得到了同样的错误更新了
NPM
档案在
/node-v6.10.2-linux-x64/bin/npm
对于模块path如下:
代码之前
var log = require('npmlog')
后代码
var log = require('/node-v6.10.2-linux-x64/lib/node_modules/npm/node_modules/npmlog')
对于我来说,我跑brew uninstall node
,然后从nodejs.org下载最新版本,它的工作。