Я на 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
Кто-нибудь сталкивается с той же проблемой и знает решение этой проблемы?
То, что вы видите, это ошибка , возникающая в определенных комбинациях версий узла 0.10 и npm до 1.2.15.
Как указывает Тодд, nodejs
пакет Ubuntu по состоянию на 0.10 включает в себя npm
. Однако, поскольку вы ранее установили npm
«старый» способ, т. Е. Как и любой другой глобально установленный пакет npm, старая версия (в которой обнаружена ошибка) по-прежнему извлекается из вашего $PATH
после обновления.
Используйте which npm
, чтобы узнать, установлен ли у вас пакет из /usr/bin/npm
. Если вы все еще получаете «старый», удалите его (это только символическая ссылка), и вы получите «новую» версию из пакета Ubuntu.
Вы используете 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 может быть немного упрямым. Вместо обычного
blockquote>sudo apt-get update sudo apt-get upgrade
вы, вероятно, вместо этого захотите сделать что-то вроде
blockquote>sudo apt-get update sudo apt-get -y dist-upgrade
Это сработало для меня. Удалите npm. Обновите вашу установку nodejs.
apt-get remove npm
apt-get install nodejs
Хорошо. Эта проблема может быть решена путем удаления каталогов .npm и .node-gyp из домашней папки, а затем повторной установки nodejs. Я не уверен, является ли это полностью защищенным, но у меня это сработало :)