Подтвердить что ты не робот

Глобальные модули Node не установлены правильно. Команда не найдена

У меня возникла проблема с установкой глобальных модулей node, и все, что я нашел в Интернете, говорит, что решение просто добавляет -g. Это не проблема. Я считаю, что это проблема связи или неправильная проблема с каталогом.

Вот что я делаю:

$ npm install -g express
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.3
...downloads correctly

$ express myapp
bash: express: command not found

Однако, когда я запускаю прямую ссылку для выражения, она работает:

   $ /usr/local/share/npm/bin/express myapp

   create : myapp
   create : myapp/package.json
   create : myapp/app.js
... Builds app correctly

Где модуль:

$ which node
/usr/local/bin/node
$ node -pe process.execPath
/usr/local/Cellar/node/0.8.20/bin/node
$ npm link express
/Users/bentonrr/Development/Personal/node_modules/express -> /usr/local/share/npm/lib/node_modules/express

В моем .bash_profile у меня есть:

export PATH=/usr/local/bin:$PATH
export NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node

Нужно ли мне изменить среду node для загрузки в правильную папку? Правильно ли что-то не связано? Я потерян.

Спасибо!

Другие характеристики:

$ node --version
v0.8.20
$ npm --version
1.2.11
$ brew --version
0.9.4
OSX Version 10.8.2
4b9b3361

Ответ 1

Добавьте /usr/local/share/npm/bin к вашему PATH (например, в .bashrc).

Для получения дополнительной информации см. npm help npm:

глобальный режим: npm устанавливает пакеты в префикс установки в префикс /lib/ node_modules, а ящики устанавливаются в префикс /bin.

Префикс установки можно найти с помощью npm get prefix или npm config list | grep prefix.

Ответ 2

Это может означать, что ваш префикс установки node не тот, который вы ожидаете.

Вы можете установить его так:

npm config set prefix /usr/local

попробуйте запустить npm install -g снова, и это должно сработать. Работал для меня на Mac, и решение приходит с этого сайта:

http://webbb.be/blog/command-not-found-node-npm/

EDIT: Обратите внимание, что я просто натолкнулся на это снова на новом Mac, который я настраивал, и должен был сделать процесс fooobar.com/questions/164950/....

Ответ 3

Я никогда не устанавливать какие - либо НПЕ вещи, через Суд! У меня есть свои причины, но я просто стараюсь держать вещи простыми и основанными на пользователя, поскольку это мир разработки пользователей, и не у всех есть доступ к корням, а root/sudo - установка таких вещей, как будто, кажется, загромождает вещи, чтобы начать с. В конце концов, все разработчики должны иметь возможность следовать этим инструкциям, а не только привилегированным пользователям sudo.

Эта конкретная система - это RHEL7, доступ к которой осуществляется через SSH:

Часто нужны разные версии узла, поэтому я использую NVM https://github.com/creationix/nvm

Таким образом, я могу показать вам рабочий пример для -g глобальных установок, используя NVM, NPM и узловые пути, не используя root.

установите префикс для .npm-packages если он еще не установлен. (обратите внимание, что это дефис, а не подчеркивание)

nvm config ls
prefix = "/home/<yourusername>/.npm-packages"

Затем отредактируйте свой файл ~/.bash_profile или.bashrc, если вы предпочитаете читать о том, почему и который здесь, со следующей информацией.

#PATH EXPORTS
NODE_MODULES=$HOME/.npm                                          
NPM_PACKAGES=$HOME/.npm-packages/bin                           
export PATH=$PATH:$HOME/bin:$NODE_MODULES:$NPM_PACKAGES         

#NVM ENABLE                                                 
export NVM_DIR="$HOME/.nvm"                                   
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm 

Это в значительной степени охватывает все пути. Например, если вы устанавливаете gulp, как этот npm install -g gulp он символизирует в ~/.npm-packages/bin (обратите внимание, что дефис, а не подчеркивание). (нет необходимости в gulp-cli или gulp-cl)

Вы можете в значительной степени заменить/закомментировать все остальные пути пути узла. Вы можете поместить эту информацию о пути ниже любой другой информации о пути, которую у вас уже есть, безопасно, без перезаписи этого материала.

Ответ 4

В моем случае переменная среды NODE_PATH была пустой. Проверьте, является ли это empty-

echo $NODE_PATH

если NODE_PATH пуст. Затем измените ~/.bash_profile и добавьте NODE_PATH

nano ~/.bash_profile
export NODE_PATH='npm root -g'
source ~/.bash_profile

Теперь снова установите модули npm и проверьте, устанавливается ли он в npm root -g

Ответ 5

Мой npm также не смог найти глобальные пакеты. Я сделал то, что предложил Брэд Паркс:

npm config set prefix /usr/local

Затем я получил ошибку разрешений EACCES (НЕ ИСПОЛЬЗОВАТЬ sudo npm install -g <package>) и исправил ее в официальных документах npm: https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

  1. В командной строке в своем домашнем каталоге создайте каталог для глобальных установок:
 mkdir ~/.npm-global
  1. Настройте npm для использования нового пути к каталогу:
 npm config set prefix '~/.npm-global'
  1. В предпочитаемом вами текстовом редакторе откройте или создайте файл ~/.profile и добавьте следующую строку:
 export PATH=~/.npm-global/bin:$PATH
  1. В командной строке обновите системные переменные:
 source ~/.profile
  1. Затем установите пакет глобально и протестируйте его! Например:
npm install -g awsmobile-cli
awsmobile configure

Ответ 6

  1. Добавьте следующую строку в ваш ~/.bash_profile

    export PATH="$HOME/.npm/bin:$PATH"
    
  2. Загрузить профиль bash

    bash -l
    

Ответ 7

У меня была проблема с двоичными файлами, потому что пользовательский .npmrc- файл в моем домашнем каталоге имел bin-links установленные как false, хотя по default is true.

На всякий случай, это ваша проблема, проверьте, что ни один из ваших файлов.npmrc не установлен на false.

Затем повторная установка всех модулей создаст двоичные файлы в prefix чтобы ваш PATH мог их видеть.

Ответ 8

Шаги

Сначала удалите Node:

 sudo rm -rf /usr/local/lib/node_modules/jitsu
 npm cache clear
 sudo npm install jitsu -g

Во-вторых, создайте .bash_rc:

 vi ~/.bash_rc

Скопируйте следующие элементы и вставьте их в файл, открытый на шаге 2:

 [[ -s  ~/.bashrc ]] && source ~/.bashrc
 export PATH=/usr/local/share/npm/bin:$PATH

Запустить джитсу. Запустите vi ~/.bash_profile, вот что вы увидите:

 [[ -s  ~/.bashrc ]] && source ~/.bashrc
 export PATH=/usr/local/share/npm/bin:$PATH

 # {{{
 # Node Completion - Auto-generated, do not touch.
 shopt -s progcomp
 for f in $(command ls ~/.node-completion); do
   f="$HOME/.node-completion/$f"
   test -f "$f" && . "$f"
 done
 # }}}

Я нашел ответ для удаления Node из этой статьи: JITSU НЕ ДОЛЖЕН УСТАНОВИТЬ OSX [ node 0.8.17 и NPM 1.2.0] WTF