我只是跟着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进行?
答案 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,请尝试此解决方案。
了解当前使用的节点和npm的确切安装位置:
which node
就我而言,是/home/ubuntu/.nvm/versions/node/
现在,使用以下命令删除所有版本的节点:
sudo rm -rf /home/ubuntu/.nvm/versions/node/
您现在可以使用nvm安装所需版本的node和npm。
nvm install 4.9.1
答案 5 :(得分:-1)
对我来说,重新安装npm是可行的:
npm install -g npm