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

Как исправить "yo: command not found" после установки Yeoman

Следуя этим инструкциям, я попытался установить yoman, используя npm дважды: http://yeoman.io/learning/index.html

После первого отказа я удалил node с помощью следующих инструкций: Как полностью удалить Node.js и переустановить с начала (Mac OS X) Затем я установил nvm и node/npm (через nvm) с помощью одна ошибка:

[Yeoman Doctor] Uh oh, I found potential errors on your machine
---------------

[Error] NPM root value is not in your NODE_PATH
  [info]
    NODE_PATH = /Users/joanna/.nvm/v0.10.22/lib/node_modules:.
    NPM root  = /Users/joanna/.node/lib/node_modules

  [Fix] Append the NPM root value to your NODE_PATH variable
    Add this line to your .bashrc
      export NODE_PATH=$NODE_PATH:/Users/joanna/.node/lib/node_modules
    Or run this command
      echo "export NODE_PATH=$NODE_PATH:/Users/joanna/.node/lib/node_modules" >> ~/.bashrc && source ~/.bashrc

Я вставлял эту команду, а затем снова запускал npm install -g yo.

После повторного выполнения инструкций с сайта yoman, он все еще не может найти йомана. Я получаю эту ошибку: - bash: yo: команда не найдена

Что не так? Йомен Доктор говорит: "Все выглядит хорошо!"

4b9b3361

Ответ 1

Источником проблемы является то, что вы устанавливаете NODE_PATH при одновременном использовании NVM. Когда вы используете NVM, у вас не должно быть переменной NODE_PATH вообще, так как NVM устанавливает глобальные пакеты в свой корневой каталог версии.

Удалите все пакеты, которые находятся в вашем NODE_PATH, удалите переменную окружения и установите yo, а также генераторы или любые другие глобальные пакеты, которые вам нужны. Вы увидите, что он перестает жаловаться, и все заканчивается в подкаталоге nvm, соответствующем текущей версии.

Когда вы начинаете использовать другую версию Node в NVM, переустановите глобальные пакеты. Это будет содержать все, что было бы аккуратно, например, версией.

Дополнительная информация по этой дискуссии здесь: https://github.com/creationix/nvm/pull/97

Ответ 2

Мне нужно было добавить эту строку в .bash_profile

export PATH="$PATH":~/.node/bin

Вы можете выполнить, чтобы добавить его автоматически:

printf "\nexport PATH=\"\$PATH\":%s\n" ~/.node/bin >> ~/.bash_profile

Протестировано на OS X 10.9, 10.10, 10.11 и Ubuntu 14.04

Ответ 3

Краткая версия:

В своей оболочке введите следующие команды:

  • npm config set prefix ~/npm

  • echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc

  • Затем переустановите Yeoman:

    npm install -g yo

Тогда все должно работать нормально!

Объяснение:

Было аналогичное условие, за исключением того, что команда yo работала, но после установки их не появлялись все установленные генераторы, это решило проблему.

Проблема заключается в том, что ваш путь npm установлен в /usr/local, который является каталогом, для которого требуются привилегии root/sudo, поскольку yo - это пользовательская команда, она не должна запускаться как суперпользователь, Я попробую запустить sudo yo, Йомен скажет вам это явно.

Я также попытался chown -R $USER:$USER /usr/local и chmod -R /user/local +rw, но ни один из них не помог.

Имейте в виду, что модули node (yo-генераторы также являются модулями node), которые ранее были установлены в /usr/local, могут быть недоступны и потребуют повторного включения.

Ответ 4

Для меня на Ubuntu только для меня работали следующие...

Ubuntu

Протестировано на Ubuntu 14.04.2

Это была базовая установка Ubuntu 14.04.2 на VirtualBox с использованием ubuntu-trusty-64.

Я только что установил node и npm fresh, и они хорошо работали.

npm install -y -g yo
echo export PATH="$HOME/npm/bin:$PATH" >> ~/.bashrc
npm config set prefix ~/npm
echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc
npm install -y -g yo

да, мне пришлось установить йоману, исправить проблемы с пути, а затем переустановить йомана.

Пояснения выше из Олега Тихонова и bfred.it

Ответ 5

Попробовав приведенное выше предложение, я заметил, что yoman был установлен, как и ожидалось, в /Users/joanna/.node/bin/yo. Я установил символические ссылки на yo, grunt и bower в /usr/local/bin с помощью

ln -s /Users/joanna/.node/bin/yo /usr/local/bin/yo
ln -s /Users/joanna/.node/bin/grunt /usr/local/bin/grunt
ln -s /Users/joanna/.node/bin/bower /usr/local/bin/bower

Все работает сейчас, но я обеспокоен тем, что ссылки могут вызвать проблемы в будущем. Есть ли лучшее решение?

Ответ 6

Просто добавлю, я использую OS X 10.11.1, код, как упоминал Стив работает для меня тоже.

npm install -y -g yo
echo export PATH="$HOME/npm/bin:$PATH" >> ~/.bashrc
npm config set prefix ~/npm
echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc
npm install -y -g yo

Ответ 7

Я использовал:

$HOME/npm/bin

И это очень сработало!

В MAC OSX

Ответ 8

Проверьте, где установлен ваш npm:

where npm

Запуск выше команды отобразит каталог, в котором npm, выглядит следующим образом:

/usr/local/Cellar/node/5.1.0/libexec/npm/bin/npm

Скопируйте путь до bin и экспортируйте его как переменную PATH, как показано ниже:

export PATH=$PATH:/usr/local/Cellar/node/5.1.0/libexec/npm/bin