npm update打破了npm

时间:2018-05-13 13:34:37

标签: node.js linux npm

我只是跟着this guide来更新npm(因为我的nodered相机模块没有工作)并运行

npm install -g npm

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

npm

npm update

我得到了

  

/usr/local/lib/node_modules/npm/bin/npm-cli.js:79         let notifier = require('update-notifier')({pkg})         ^^^

     

SyntaxError:块范围的声明(let,const,function,class)   在严格模式之外尚未支持

我试过

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

但重新安装并没有帮助。

我认为我的节点版本需要从v4.8.2升级,但我认为这只能用npm进行?

6 个答案:

答案 0 :(得分:29)

您可能同时安装了npm,一个位于/usr/local/bin,另一个位于/usr/bin

尝试运行此操作:/usr/bin/npm uninstall npm (您可能希望在此之前运行:rm -r /usr/local/lib/node_modules/npm

一旦你有一个正在运行的npm版本,使用npm安装更新版本的node和npm并删除你的linux发行版本。

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

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

答案 1 :(得分:3)

(centos的解决方案。...我认为它也可以在ubuntu上使用):

要完全清理我的centos机器,我还另外执行了以下操作-我的用户是“ centos”,我的家是/ home / centos:

self._arr

仅在这一点上,我才重新安装:

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

答案 2 :(得分:1)

对于那些使用google来找到它的人,您可能会想通过  curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -,然后使用sudo apt install nodejs安装。

但是,无论如何,我都以某种方式遇到了这个问题。请记住,npm @ 6放弃了对node @ <= 4的支持,这是一个重要因素。如果您想确保所有内容均已安装了最新的正确版本,我强烈建议您通过 nvm 安装。

Via the nvm instructions on their GitHub:您可以添加安装脚本,

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

然后,您可以开始使用nvm。您可能必须重新启动终端,因此在安装后,退出终端,再次启动它,并检查是否已使用nvm --version安装了nvm。

如果一切顺利,则可以在拖曳中使用npm安装任何特定版本的节点。撰写本文时,node的最新稳定版本是10.15.3,所以

 nvm install 10.15.3

当然,如果您需要帮助,nvm --help会列出选项。

答案 3 :(得分:1)

在Ubuntu上,其他答案对我不起作用,最终陷入僵局,npm损坏或无法重新安装/更新npm。

我使用的根本解决方案:

1 /删除节点的所有痕迹。使用底部的remove.sh脚本跟随此页面: http://kselax.ru/en/npm-errors/

2 /然后使用最新的安装脚本从头开始nodejs + npm重新安装: https://github.com/nodesource/distributions/blob/master/README.md

答案 4 :(得分:0)

如果使用nvm安装npm和node,请尝试此解决方案。

  1. 了解当前使用的节点和npm的确切安装位置:

    which node

    就我而言,是/home/ubuntu/.nvm/versions/node/

  2. 现在,使用以下命令删除所有版本的节点:

    sudo rm -rf /home/ubuntu/.nvm/versions/node/

  3. 您现在可以使用nvm安装所需版本的node和npm。

    nvm install 4.9.1

答案 5 :(得分:-1)

对我来说,重新安装npm是可行的:

npm install -g npm