Получение npm: команда не найдена. Как переустановить NPM, если Node уже установлен? Куда прошел НПМ?
Я начинаю научиться создавать современные веб-приложения с помощью AngularJS Tutorial и сталкиваться с проблемами очень рано.
У меня установлен node:
/path/ang-news node -v
v0.10.26
Раньше я использовал NPM, но у меня проблемы с Йоменом. Я повторил эти шаги некоторое время назад, но Грунт перестал работать, поэтому я начал новый.
Я побежал:
$ sudo npm install -g generator-angular
и все зависимости устанавливались до тех пор, пока я не получил:
npm WARN package.json [email protected] No repository field.
npm ERR! peerinvalid The package generator-karma does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer [email protected] wants [email protected]>=0.8.2
Затем я попытался обновить:
$ npm update -g
Я должен был запустить это как администратор. Я получил массу сообщений об ошибках, это выглядело наиболее уместным:
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Darwin 13.1.0
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "update" "-g"
npm ERR! cwd /path/ang-news
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! not ok code 0
Затем я попытался удалить генератор-карму и начать новую:
$ sudo npm uninstall -g generator-karma
но получил:
sudo: npm: command not found
$ npm -v
-bash: /usr/local/bin/npm: No such file or directory
Мой первый вопрос: почему NPM внезапно исчез?
[EDIT: Преданность @try-catch - наконец, указывать на хаос, который возникает при переключении между обычным пользователем и sudo при выдаче команд. Оказывается, я испортил пользовательскую среду, и NPM больше не был установлен.]
Я понимаю, что NPM установлен при установке Node, поэтому мой второй вопрос: как переустановить только NPM? Я бы предпочел не переустанавливать node из начало.
[EDIT: Признаки @hawk и @try-catch-finally - не похоже, что установка NPM - это вариант, но есть простые способы переустановки обоих.]
Ответы
Ответ 1
- Если у вас есть рабочий node, вы можете повторно установить npm
curl -L https://npmjs.org/install.sh | sudo sh
-
К сожалению, npm update -g
не выполняет то, что ожидает. Фиксация этого происходит в плане маршрутизации в минуту, но это займет некоторое время.
-
Вам почти никогда не нужно устанавливать пакет глобально, если только (например, generator-angular
или grunt-cli
) вы не хотите использовать этот пакет в качестве команды.
Ответ 2
На всякий случай, когда вы сделали это с помощью brew, я рекомендую эту статью на github. Сэкономит вам много времени.
https://gist.github.com/DanHerbert/9520689
Исправление npm В Mac OS X для пользователей Homebrew
Выполните следующие команды, чтобы удалить все существующие глобальные модули npm, удалите node и npm, переустановите node с правильными значениями по умолчанию, установите npm в качестве собственного pacakge и настройте местоположение для устанавливаемых глобальных модулей npm.
rm -rf /usr/local/lib/node_modules
brew uninstall node
brew install node --without-npm
echo prefix=~/.node >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh
Node и npm должны быть правильно установлены на этом этапе. Последний шаг - добавить ~/.node/bin в ваш PATH, чтобы команды, которые вы устанавливали по всему миру, можно использовать. Я добавил эту строку в мой ~/.path script, который запускается через ~/.bash_profile. Выполните следующую строку как есть.
export PATH="$HOME/.node/bin:$PATH"
Ответ 3
Я встретил точно такую же проблему после выполнения команды для установки npm с последней версией на redhat 7.1:
npm install [email protected] -g
после некоторых попыток я нашел решение:
yum reinstall npm
Надеюсь, это может помочь пользователям redhat/centos.