错误"找不到模块' npmlog'"在" npm update -g"

时间:2016-01-10 06:06:27

标签: node.js npm nvm

我有NVM 0.30.1并用它在Fedora 22上安装node.js v5.4.0(带NPM 3.5.4)。当我运行npm update -g时,我收到以下警告:

npm WARN EBUNDLEOVERRIDE Replacing bundled npm > init-package-json with new installed version
npm WARN EBUNDLEOVERRIDE Replacing bundled npm > node-gyp with new installed version
npm WARN EBUNDLEOVERRIDE Replacing bundled npm > npm-install-checks with new installed version
npm WARN EBUNDLEOVERRIDE Replacing bundled npm > npmlog with new installed version
npm WARN EBUNDLEOVERRIDE Replacing bundled npm > read-package-json with new installed version

之后,当我运行npm时,我收到此错误:

module.js:328
    throw err;
    ^

Error: Cannot find module 'npmlog'
    at Function.Module._resolveFilename (module.js:326:15)
    at Function.Module._load (module.js:277:25)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at /home/peflorencio/.nvm/versions/node/v5.4.0/lib/node_modules/npm/bin/npm-cli.js:20:13
    at Object.<anonymous> (/home/peflorencio/.nvm/versions/node/v5.4.0/lib/node_modules/npm/bin/npm-cli.js:76:3)
    at Module._compile (module.js:398:26)
    at Object.Module._extensions..js (module.js:405:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)

有谁知道它是什么以及如何解决它?

由于

9 个答案:

答案 0 :(得分:7)

感谢您的回答。它是bug,它已在Node v5.4.1中修复。现在它像往常一样工作。

答案 1 :(得分:6)

为我解决的是

sudo rm -rf /usr/local/lib/node_modules/

然后重新安装节点(使用npm)。

答案 2 :(得分:4)

看起来npm update -g无法将npm更新为最新版本。我通过手动更新npm安装来解决问题。

  1. 安装/重新安装节点以获取捆绑的npm
  2. 运行npm install -g npm@3.5.4以更新全局npm安装
  3. 现在npm update -g应该正常工作

答案 3 :(得分:3)

我在Windows 10 PC中遇到了同样的问题。在研究解决方案之后,因为我找不到我面临的问题的确切解决方案 无法找到模块&#39; npmlog&#39; 我刚刚卸载了节点js,然后删除了&#39; npm&#39;和&#39; npm-cache&#39;在 &#34; C:\用户\ YourPCName \应用程序数据\漫游&#34;

然后,我从Node JS Website

下载了最新版本的节点

并且,已安装节点js

之后我检查了环境变量中的路径。

最后运行命令提示符&#39;以管理员身份运行&#39;和 npm install npm -g

检查您的版本将显示最新版本。 &#39; npm -v&#39;

我得到了最新版本 - v3.10.9

试试这个。这应该有效。

答案 4 :(得分:2)

如果有Linux的人遇到问题,可以采用以下解决方案:

截至本文发布之日,与Nodejs打包在一起的NPM版本无效。如果您安装了此软件包,请运行

sudo rm -rf /usr/local/bin/npm
sudo apt-get install node
sudo mv /usr/bin/npm /usr/local/bin/npm

新版本应为3.10.8且旧错误消失

答案 5 :(得分:1)

init-package-json,node-gyp,npm-install-checks,npmlog,read-package-json未正确安装。不知道为什么。

没有找到问题的根本原因,但我现在使用hacky方式安装上面的软件包:

  • 回滚到之前没有更新npm的节点版本。例如,nvm use iojs
  • cd安装npm的位置,例如cd /home/peflorencio/.nvm/versions/node/v5.4.0/lib/node_modules/npm,然后重新安装rm -rf node_modules/init-package-json && npm install init-package-json等包。

答案 6 :(得分:0)

一些答案​​已经回答了问题,但是我仍然想提出自己的想法。在告诉我运行这段代码后运行npm update -g npm之后,我遇到了相同的问题,错误开始了。我通过使用节点版本管理器(nvm)解决了我的问题:

nvm install 8

注意:实际上不是8,而是您选择的版本,例如(6,5)。输入版本号将自动安装指定版本的稳定版本。 安装后,您应该会收到一条CLI消息:

Now using node v8.11.4 (npm v5.6.0) 

答案 7 :(得分:0)

如果您使用的是Mac,请执行以下步骤进行补救(假设您已经安装了Homebrew):

sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*

(以解决bash: /usr/local/bin/npm: No such file or directory错误)

hash -r 

然后继续更新brew(以使其桶保持最新状态)和重新安装过程,链接是可选的。

brew update

brew reinstall node

brew link --overwrite node

您可以在两者之间的任何时候使用npm -vnode -v来测试您是否正在进步。如果您有node返回的版本,但没有npm返回的版本,则需要使用以下方法添加到环境的路径:

export PATH="/usr/local/bin:$PATH"

答案 8 :(得分:0)

有一个选项可以在不重新安装节点的情况下更改npm。

#### # this will remove current npm
rm -rf /usr/local/lib/node_modules/npm/

#### # install npm from sources. Version 3.5.x will be installed
apt-get update
apt-get install npm

#### # install the newest npm version. Bumping from 3.5.X to 6.14.X goes without any issue :)
/usr/bin/npm install npm@latest -g

#### # additionally, npm with version 3.5.x is not added to $PATH, so it's not used.