Как исправить "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: команда не найдена
Что не так? Йомен Доктор говорит: "Все выглядит хорошо!"
Ответы
Ответ 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