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

Can't upgrade NPM packages with npm update/upgrade -g command

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

当运行sudo npm update -gsudo npm upgrade -g终端给出

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 install -g <package_name>"updates"打包没问题。当然,我可以单独 install/upgrade 每个包,但这违背了 npm update/upgrade -g 命令的目的。

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

有些地方可能是错误的,这应该有助于解决您的问题。

  1. 你应该 fix your npm permissions,这样当你尝试使用 npm 全局安装包时就不必使用 sudo

  2. nvm这个工具应该可以帮到你。通过查看 GitHub 问题,您当前的 node/npm 版本中可能存在 bug/corruption,工具 nvm 可以更改节点版本,同时修复您的 sudo问题。

也有可能您使用 pacman 而不是 npm 安装了 npm,这可能就是您无法正确升级的原因。您可以使用命令 pacman -S npm 获取最新版本的 npm,这是社区存储库中可用的软件包。