2013-04-03 2 views
5

Итак, я изучаю узел node.js. Я слежу за this tutorial, чтобы установить его и попробовать немного вещей.zshrc "команда не найдена: npm"

Во всяком случае, npm ведет себя действительно странно. Это будет прекрасно работать на некоторое время (я изменил его настройку для просмотра конфигурации, например), но потом внезапно «исчезает», так что в следующий раз я вхожу

npm ...(anything) 

в командной строке, мой сообщает оболочку что команда npm не найдена. Раньше деинсталляция, а затем переустановка npm с помощью nvm работала, но я бы предпочёл не делать этого каждые десять минут, и мне очень странно, что она вдруг перестанет работать.

Я думаю, что в прошлый раз он прекратил работу после того, как я отредактировал, а затем переработал файл ~/.zshrc - только что добавили плагины завершения npm и узла.

Любая идея, что происходит? Я опубликую результаты нескольких базовых команд, но я очень плохо разбираюсь в sysadmin, и я действительно не знаю, что искать здесь.

NVM -ls

v0.8.22 
current: v0.10.2 
default -> 0.8 (-> v0.8.22) 

, какой узел

/usr/bin/node 

который НПМ

npm not found 

Там в оба NVM (это дубликат?) И НПМ каталоги непосредственно в моем корне папка.

Если я зашел в/usr/bin, узел - это файл, а не каталог. Там также файл npm, но не файл nvm.

Как видно из вышеизложенного, я действительно не знаю, что происходит. Я искал это, но, похоже, у этой проблемы нет. Любые идеи, что происходит или как их выяснить?

EDIT Отметив, что мой узел по умолчанию не обновлен, я сделал все это. Оставляя в стороне, почему моя оболочка переключился меня автоматически в каталог бен (и почему, что, как представляется, GitHub репо - не знаю, что случилось с моим компьютером), что это обеспечивает какие-либо подсказки ?:

➜ node nvm alias default v0.10.2 
default -> v0.10.2 
➜ node nvm ls 
    v0.8.22 
current: v0.10.2 
default -> v0.10.2 
➜ node npm 
zsh: command not found: npm 
➜ node nvm install npm 
######################################################################## 100.0% 
Checksums do not match. 
Binary download failed, trying source. 
Additional options while compiling: 
nvm: install N/A failed! 
➜ bin git:(master) nvm uninstall npm 
N/A version is not installed yet... installing 
######################################################################## 100.0% 
Checksums do not match. 
Binary download failed, trying source. 
Additional options while compiling: 
nvm: install N/A failed! 
➜ bin git:(master) cd ~/rails/node 

EDIT 2 - Я убедился, что путь узел был добавлен в мой zshrc файл:

#other stuff... 
export PATH=(...):/usr/bin/node 

Но когда я затем попытался запустить

source ~./zshrc 

Я получил это жаловаться т:

.zshrc:11: command not found: npm 

, который указывает на эти строки (цифры добавлены):

10 . ~/nvm/nvm.sh 
11 . <(npm completion) 

, который я получил от следуя выше TUT и обратно, когда НПМ работал, глядя, как реализовать автодополнение.

В ответ на Jens

Это в моем ~/NVM/nvm.sh файл, вблизи начала:

# Auto detect the NVM_DIR 
if [ ! -d "$NVM_DIR" ]; then 
    export NVM_DIR=$(cd $(dirname ${BASH_SOURCE[0]:-$0}) && pwd) 
fi 

# Make zsh glob matching behave same as bash 
# This fixes the "zsh: no matches found" errors 
if [ ! -z "$(which unsetopt 2>/dev/null)" ]; then 
    unsetopt nomatch 2>/dev/null 
fi 

Я попытался (и я думаю, что успешно сделал) CHMOD npm, чтобы сделать чтение/запись/выполнимым.

+1

ли ваш 'точку PATH' туда, где' установлен node'? – alex

+0

@alex - попытался это сделать, но я не уверен на 100%, где это. Я добавил/npm к пути, потому что эта папка npm находится в корне. И node.js в противном случае работает просто отлично, поэтому я считаю, что это правильно добавлено в путь. Как узнать, какие каталоги добавить на мой путь? И Джесемон - как ты это исправил? – Sasha

+0

Да, сейчас, по крайней мере. Но теперь, когда я добавил, что просто пытается загрузить файл zshrc, теперь ворчит «.zshrc: 11: команда не найдена: npm», указывая на строку, где я добавил nvm-путь некоторое время назад («.//nvm/nvm .sh ") – Sasha

ответ

4

У меня была проблема, когда ни Node, ни npm не работают. Я потратил около 6 часов на поиск решения в Интернете, но не повезло.

Как npm website упоминания:

НПМ поставляется с node сейчас.

Я думал снова установить Node.js, с надеждой, что будет исправить эти проблемы, и он сделал :)

После установки была полностью успешной. Установщик Node показывает это последнее сообщение:

узел был установлен на

/usr/local/bin/node

был установлен НПМ на

/usr/local/bin/npm

Убедитесь, что /usr/local/bin is in your $PATH.

И вот где я замечаю, что мои $PATH и каталоги установки были неправильными. После установки я использую abel для запуска узла и npm.

Надеется, что это помогает ...

-2

1) Откройте ЗШ конфигурационный файл

nano ~/.zshrc 

2) Добавить путь

export PATH="$PATH:/usr/local/share/npm/bin" 

3) Сохраните файл, нажав сочетание клавиша CTRL + X и затем Y

4) Выполняет содержимое файла

source ~/.zshrc 

Этот простой процесс работал для меня :-)

-1

Честно говоря, не уверен, если это будет/решит проблему вы/имели, но я испытывал в значительной степени именно то, что вам подробные - где NPM был но затем случайным образом просто перестали работать, и я попробовал тонну тех же вещей, которые предлагали здесь люди без везения.

Что в конечном итоге делает трюк для меня, как простой/немой, как это звучит/это был:

source ~/.bash_profile 

Я бы хотел лучше объяснить, почему это было волшебной пулей, но в по крайней мере, это работает!

Cheers!

+0

Это работает для 1 вкладки за раз для меня. – MattGoldwater

-1

У меня была такая же проблема с моим Mac, я сделал следующее:

  1. деинсталлировать существующий узел
  2. Перейти на веб-страницу узла и загрузить пакет, а затем установить его
  3. Перейти к ~/.zshrc и путь, как правило, быть /usr/local/bin
  4. Веселитесь с npm
-1
curl -L https://npmjs.org/install.sh | sh 

Я попробовал его на новой установке CentOS 7, и он работает!

0

Для меня и других гуглеров, прибывающих сюда, проблема заключалась в том, что при вызове sudo на Ubuntu использовался secure_path, который не включал NPM.

Вы можете отключить secure_Path, что определенно не рекомендуется. Таким образом, вместо этого я просто приложил бункер узла к secure path, при установке с помощью NVM это выглядело, как это для меня

  • $: Sudo су

  • $: visudo

Затем добавляя /home/YourUsername/.nvm/versions/node/v8.5.0/bin: к переменной secure_path.

Дополнительная информация: sudo changes PATH - why?

Смежные вопросы