使用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)

没有太多的错误消息,并且堆栈跟踪也无法帮助我。 以下是我所尝试的:

  1. search了一下Stackoverflow,虽然也有类似的问题,但是人们已经可以使用npm <something>来解决他们的问题,我不能这样做。
  2. 卸载并重新安装npm – 没有工作,因为我不能使用npm命令,所以像sudo npm uninstall npm -g这样的东西不起作用。
  3. .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(或者mvrsync -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下载最新版本,它的工作。