无法使用npm update / upgrade -g命令升级NPM软件包

运行Archlinux + Gnome-Shell 3.20,NodeJS 5.10.1 NPM 3.8.6版本。

当运行sudo npm update -g或者sudo npm upgrade -g terminal给出

 npm ERR! addLocal Could not install /build/semver/src/semver-5.1.0.tgz npm ERR! addLocal Could not install /build/semver/src/semver-5.1.0.tgz npm ERR! addLocal Could not install /build/uglify-js/src/uglify-js-2.6.2.tgz 

sudo npm outdated -g同样的输出sudo npm outdated -g

当运行sudo npm install -g <package_name> “updates”包时没有问题。 当然,我可以单独安装/升级每个软件包,但是这违背了npm update / upgrade -g命令的目的。

我已经通过sudo npm install -g npm@latest更新了NPM到最新版本,希望它能解决这个问题,就像这里的很多https://github.com/npm/npm/issues/10165,但无济于事。

有几件事情可能是错误的,这应该有助于解决您的问题。

  1. 你应该修复你的npm权限 ,所以当你试图用npm全局安装一个软件包时,你不必使用sudo

  2. nvm是一个应该能够帮助你的工具。 通过查看GitHub问题,可能会在当前节点/ npm版本中出现错误/损坏,而nvm工具将使修改节点版本成为可能,同时也解决了您的sudo问题。

你也可能使用pacman而不是npm来安装npm,这就是为什么你无法正确升级的原因。 你可以通过使用命令pacman -S npm这个社区资源库中可用的包来获得最新版本的npm。