Обновление npm прервало npm
Я просто последовал этому руководству, чтобы обновить npm (поскольку мой модуль камеры не работал) и бежал
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?
Ответы
Ответ 1
Вы, вероятно, дважды установили npm, один в /usr/local/bin
, а другой в /usr/bin
.
Сначала вы можете попытаться удалить установленный модуль npm
, обновив npm
. Попробуйте запустить это:
rm -r /usr/local/lib/node_modules/npm
/usr/bin/npm uninstall npm
Если у вас есть работающая версия npm, установите более новую версию узла перед обновлением npm. Затем удалите версию своего дистрибутива Linux.
Если первое решение не работает, другой подход заключается в установке последней версии узла (без использования npm, конечно):
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
Ответ 2
(решение для 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
Ответ 3
Тем, кто использовал Google, чтобы найти это, вы можете curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
желание установить через curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
и затем установка с помощью sudo apt install nodejs
.
Впрочем, я как-то столкнулся с этим вопросом независимо. Пожалуйста, имейте в виду, что npm @6 отказался от поддержки узла @<= 4, и это является важным фактором. Если вы хотите быть уверены, что все установлено в последних, правильных версиях, я очень рекомендую установить через nvm.
С помощью инструкций nvm на их GitHub: Вы можете добавить скрипт установки с помощью
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
Тогда вы можете начать использовать nvm. Скорее всего, вам придется перезапустить свой терминал, поэтому после установки выйдите из терминала, запустите его снова и убедитесь, что nvm установлен с nvm --version
.
Если все идет хорошо, вы можете установить любую конкретную версию узла с npm на буксире. Последней стабильной версией узла на момент написания статьи является 10.15.3, поэтому
nvm install 10.15.3
И, конечно, если вам нужна помощь, у nvm --help
есть список опций.
Ответ 4
Если вы используете nvm для установки npm и узла, попробуйте это решение.
-
Узнайте, где именно находится используемый в данный момент узел и установлен npm:
which node
В моем случае это был /home/ubuntu/.nvm/versions/node/
-
Теперь удалите все версии узла, используя:
sudo rm -rf/home/ubuntu/.nvm/versions/node/
-
Теперь вы можете использовать nvm для установки требуемой версии узла и npm.
nvm install 4.9.1
Ответ 5
Другие ответы у меня не работали в Ubuntu и оказались в тупике, со сломанным npm или неспособностью переустановить/обновить npm.
Радикальное решение, которое я использовал:
1/Удалить все следы узла. Перейдите на эту страницу, используя скрипт remove.sh внизу:
http://kselax.ru/en/npm-errors/
2/Затем переустановите с нуля nodejs + npm, используя последний установочный скрипт:https://github.com/nodesource/distributions/blob/master/README.md
Ответ 6
Для меня переустановка npm сработала:
npm install -g npm