разрывы npm после обновления nodejs до 0.10

Я на 12.04LTS. Я обновил свою систему сегодня, и в этом процессе nodejs был обновлен. Теперь мой npm перестал работать. Например:

$ npm install express                     
npm http GET https://registry.npmjs.org/express
npm http 200 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/express/-/express-3.1.0.tgz
npm http 200 https://registry.npmjs.org/express/-/express-3.1.0.tgz
npm ERR! cb() never called!
npm ERR! not ok code 0

Кто-нибудь сталкивается с той же проблемой и знает решение этой проблемы?

4
задан 05.03.2020, 06:29

4 ответа

Вы используете PPA Криса Ли? Это может быть полезно: https://chrislea.com/2013/03/15/upgrading-from-node-js-0-8-x-to-0-10-0-from-my-ppa/

Также следует отметить, что пакеты nodejs-dev и npm больше не существуют. Новый пакет nodejs содержит все, что использовалось в этих отдельных пакетах, потому что npm нужны все файлы разработки, и вы на самом деле не используете узел в наши дни, если вы не используете npm. Таким образом, мы решили, что просто упростили бы вещи с помощью единого пакета.

При обновлении будут удалены предыдущие версии, но apt может быть немного упрямым. Вместо обычного

sudo apt-get update
sudo apt-get upgrade

вы, вероятно, вместо этого захотите сделать что-то вроде

sudo apt-get update
sudo apt-get -y dist-upgrade
4
ответ дан 05.03.2020, 06:31
  • 1
    Да, я использую chris lea' s ppa. Я испытал шаги, которые Вы упомянули выше, но это не работало на меня: ( – Sandy 05.03.2020, 06:31

Это сработало для меня. Удалите npm. Обновите вашу установку nodejs.

apt-get remove npm
apt-get install nodejs
0
ответ дан 05.03.2020, 06:30

Хорошо. Эта проблема может быть решена путем удаления каталогов .npm и .node-gyp из домашней папки, а затем повторной установки nodejs. Я не уверен, является ли это полностью защищенным, но у меня это сработало :)

1
ответ дан 05.03.2020, 06:31
  • 1
    That' s не требуемый, it' s достаточный для удаления npm двоичный файл Вы установили через npm сам, таким образом, установленный двоичный файл пакета берется. Узнайте, который npm берется с which npm. – pstorli 05.03.2020, 06:31

То, что вы видите, это ошибка , возникающая в определенных комбинациях версий узла 0.10 и npm до 1.2.15.

Как указывает Тодд, nodejs пакет Ubuntu по состоянию на 0.10 включает в себя npm. Однако, поскольку вы ранее установили npm «старый» способ, т. Е. Как и любой другой глобально установленный пакет npm, старая версия (в которой обнаружена ошибка) по-прежнему извлекается из вашего $PATH после обновления.

Используйте which npm, чтобы узнать, установлен ли у вас пакет из /usr/bin/npm. Если вы все еще получаете «старый», удалите его (это только символическая ссылка), и вы получите «новую» версию из пакета Ubuntu.

3
ответ дан 05.03.2020, 06:32
  • 1
    Я должен был удалить nodejs, и удалить/usr/local/lib/node_modules и соответствующие символьные ссылки в/usr/local/bin, затем переустановить nodejs, и все работает. – lupchiazoem 05.03.2020, 06:32

Теги

Похожие вопросы