Обновление 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 и узла, попробуйте это решение.

  1. Узнайте, где именно находится используемый в данный момент узел и установлен npm:

    which node

    В моем случае это был /home/ubuntu/.nvm/versions/node/

  2. Теперь удалите все версии узла, используя:

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

  3. Теперь вы можете использовать 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