使用npm命令时找不到模块'npmlog'错误消息

Par*_*wis 31 javascript command-line node.js npm

今天是我第一份工作的第一天,在通过更新我的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)

at 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)

at Object.Module._extensions..js(module.js:432:10)

在Module.load(module.js:356:32)

在Function.Module._load(module.js:311:12)

没有太多错误信息可以关闭,堆栈跟踪也没有帮助我这么多.这是我尝试过的:

  1. 搜索Stackoverflow,尽管存在类似的问题,人们已经能够用它npm <something>来解决他们的问题,这是我做不到的.
  2. 卸载并重新安装npm - 没有用,因为我根本无法使用npm命令,因此sudo npm uninstall npm -g无法正常工作.
  3. npmlog.npm目录中删除目录,然后再次将github repo直接克隆到该目录.

希望你们中的一个人之前遇到过这个问题,或者想知道如何处理它.任何帮助表示赞赏.

zan*_*ngw 17

这是一个很好的链接Fixing npm On Mac OS X for Homebrew Users.

尝试node.js在mac下升级时使用以下命令

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
Run Code Online (Sandbox Code Playgroud)

  • 在安装npm 3.9.3的OS X El Capitan上,执行此操作后,我找到了`npm:command'.我曾经把`export PATH ="$ HOME/.npm-packages/bin:$ PATH"添加到我的`.bash_profile` (4认同)

dro*_*att 17

以下是适合我的步骤:

$ sudo rm -rf /usr/local/bin/npm
$ sudo rm -rf /usr/local/lib/node_modules/npm
$ brew uninstall node
$ brew install node
Run Code Online (Sandbox Code Playgroud)


nic*_*fly 10

尝试遵循重定向.另请注意,我在sudo sh命令之前添加了sudo,具体取决于您的用户权限.curl -0 -L http://npmjs.org/install.sh | sudo sh


Kev*_*eur 5

我刚刚遇到过这个问题在Mac上,并仔细观察,在我看来,问题是,在某些情况下,节点的应用程序目录内的链接node/bin目录npmlib/node_modules/npm/bin由文件本身所取代,这就是为什么它失败(以及为什么所有各种脚本方法都修复它,因为它们正确地保留了文件链接).

如果我从复制的内容node-v6.9.4-darwin-x64cp后来我得到这个问题,但如果我复制使用Finder中的文件,那么我不知道.因此,您可以通过手动重新创建链接来修复它,ln如果您不想使用Finder(或者,mvrsync -a可以工作;我还没有测试过它们).

希望这有助于有人来这里解决这个问题.

编辑:我只是偶然在Mac上找到了问题的原因(无论如何,我的特殊情况):我一直习惯于cp -r复制目录.这是因为我老了,不再学习新东西了.正确的方法是cp -R,正确地复制一切,正如它应该的那样.

  • 谢谢,我有完全相同的问题.我从nodejs.org下载了一个预先构建的软件包,将其解压缩到我的mac上,然后通过SFTP将其上传到我的目标系统.一旦进入目标系统,符号链接就被破坏,导致出现上述错误消息.删除断开的链接:node/bin/npm并将其替换为`ln -s node/lib/node_modules/npm/bin/npm-cli.js node/bin/npm`修复了该问题. (2认同)

Par*_*wis 3

我不一定要“解决”问题,而只是重新开始。我用这篇文章来做到这一点:How do I完全卸载Node.js,并从头开始重新安装(Mac OS X)

如果其他人知道如何实际解决问题或知道我做了什么导致了它,我仍然会非常感兴趣。