npm 更新破坏了 npm

新手上路,请多包涵

我只是按照 本指南 更新 npm(因为我的节点摄像头模块不工作)并运行

npm install -g npm

但现在我的 npm install 似乎完全坏了。如果我只是输入

npm

或者

npm update

我明白了

/usr/local/lib/node_modules/npm/bin/npm-cli.js:79 让通知器 = 要求(’update-notifier’)({pkg})^^^

SyntaxError:在严格模式之外尚不支持块范围的声明(let、const、函数、类)

我试过了

sudo apt-get remove npm
sudo apt-get install npm

但重新安装没有帮助。

我认为我的节点版本需要从 v4.8.2 升级,但我认为只有 npm 才有可能?

原文由 Wayneio 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 790
2 个回答

你可能已经安装了两次 npm,一个在 /usr/local/bin 另一个在 /usr/bin

首先,您可以尝试将通过升级安装的 npm 模块移除 npm 。尝试运行这个:

  • rm -r /usr/local/lib/node_modules/npm
  • /usr/bin/npm uninstall npm

一旦你有一个正在运行的 npm 版本,在升级 npm 之前安装一个更新版本的 node。然后,删除您的 linux 发行版的版本。

如果第一个解决方案不起作用, 另一种方法是安装最新版本的节点(当然不使用 npm)

 curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

原文由 Maxime Chéramy 发布,翻译遵循 CC BY-SA 4.0 许可协议

(centos 的解决方案….我认为它也适用于 ubuntu):

为了彻底清理我的 centos 机器,我还做了以下操作——我的用户是“centos”,我的家是 /home/centos:

 sudo rm -rf /usr/local/bin/npm
sudo rm -rf /usr/local/bin/npx
sudo rm -rf /usr/lib/node_modules/
sudo rm -rf /usr/bin/npm
sudo rm -r /usr/local/lib/node_modules/
sudo rm -rf /usr/local/bin/node
sudo rm -rf /usr/bin/npm
sudo rm -rf /usr/lib/node_modules/
rm -rf /home/centos/.npm/
rm -rf /home/centos/node*
rm -rf /home/centos/.node-gyp/
sudo rm -rf /root/.npm/
sudo rm /usr/bin/node
sudo rm -rf /usr/local/include/node

只有在这一点上我再次重新安装:

 wget http://nodejs.org/dist/latest/node-v11.4.0-linux-x64.tar.gz
sudo tar --strip-components 1 -xzvf node-v* -C /usr/local

事情又开始了:

 node --version
v11.4.0
npm --version
6.4.1

原文由 Pierluigi Vernetto 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题