Получение 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

  1. К сожалению, npm update -g не выполняет то, что ожидает. Фиксация этого происходит в плане маршрутизации в минуту, но это займет некоторое время.

  2. Вам почти никогда не нужно устанавливать пакет глобально, если только (например, 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.