npm 3.5.4:更新期间的EBUNDLEOVERRIDE导致npmlog错误

通过“brew升级”升级到Node 5.4.0,然后运行升级到npm 3.5.4的“npm update -g”。 npm更新完成警告:

/usr/local/lib └── npm@3.5.4 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 update -g”(或其他npm命令)现在会抛出npmlog错误:

 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 /usr/local/lib/node_modules/npm/bin/npm-cli.js:20:13 at Object.<anonymous> (/usr/local/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) 

我不清楚为什么重写正在发生,或者如何再次将npm指向日志。 欣赏任何想法。

看起来像brew reinstall node是解决这个问题的最不具破坏性的方法。 在安装node 3.3.12同时,

 $ brew reinstall node ==> Reinstalling node ==> Downloading https://homebrew.bintray.com/bottles/node-5.4.1.yosemite.bottle.tar.gz Already downloaded: /Library/Caches/Homebrew/node-5.4.1.yosemite.bottle.tar.gz ==> Pouring node-5.4.1.yosemite.bottle.tar.gz ==> Caveats Please note by default only English locale support is provided. If you need full locale support you should: `brew reinstall node --with-full-icu` Bash completion has been installed to: /usr/local/etc/bash_completion.d ==> Summary 🍺 /usr/local/Cellar/node/5.4.1: 2,827 files, 34.2M $ npm outdated --global Package Current Wanted Latest Location npm 3.3.12 3.5.4 3.5.3 

我完全重新安装了npm ,这似乎是我能find这个错误的唯一解决scheme。 它为我修好了。