Йо не знает об установленных генераторах

Я только что установил Yeoman и несколько генераторов. Тем не менее, потому что /usr/lib папка защищена, я решил изменить префикс места, где NPM устанавливает свои пакеты.

Прямо сейчас все устанавливается под ~/.node, Я также изменил свой $PATH и добавил ~/.node/bin, Тем не менее, когда я выполняю yo <name of generator>Я получаю следующее:

Error node 

You don't seem to have a generator with the name node installed.
You can see available generators with npm search yeoman-generator and then install them with npm install [name].
To see the 0 registered generators run yo with the `--help` option.

Как вы можете прочитать здесь, это говорит о том, что существует 0 зарегистрированных генераторов, но я установил их правильно (и завершил без ошибок). Я могу найти установленные генераторы, например ~/.node/lib/node_modules/generator-node существует и когда я выполняю следующую команду:

npm list -g

Я могу найти генераторы, которые я установил (поэтому я предполагаю, что это не проблема с npm).

Поэтому я думаю, что Yeoman (или, точнее, Yo) не знает о том, что генераторы устанавливаются в пользовательскую папку, но я не нашел способа настроить это.

2 ответа

Решение

Помимо добавления к вашему пути, вы также должны установить NODE_PATH переменная окружения. Код йомена / генератора будет выглядеть там первым:

// We tried using NPM to get the global modules path, but it haven't work out
// because of bugs in the parseable implementation of `ls` command and mostly
// performance issues. So, we go with our best bet for now.
if (process.env.NODE_PATH) {
  _.compact(process.env.NODE_PATH.split(/[;:]/g)).forEach(this.appendPath, this);
  return;
}

Похоже, проблема NODE_PATH, попробуйте выполнить следующую команду:

echo "export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules" >> ~/.bashrc && source ~/.bashrc^C

Или просто введите yo doctor выяснить, что происходит

Другие вопросы по тегам