yodoctor: команда не найдена при установке yo из терминала

Ниже приведена ошибка, которую я продолжаю получать. Кажется, это указывает на проблему «после установки» с yodoctor. К сожалению, йодоктор — это совет, который дает команда йоменов, чтобы помочь с этой проблемой. У меня установлены другие модули node_modules (bower, grunt, typescript).

sh: yodoctor: command not found
npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/Cellar/node/5.0.0/bin/node" "/usr/local/bin/npm" "install" "-g" "yo"
npm ERR! node v5.0.0
npm ERR! npm  v3.3.9
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn

npm ERR! [email protected] postinstall: `yodoctor`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the [email protected] postinstall script 'yodoctor'.
npm ERR! This is most likely a problem with the yo package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     yodoctor
npm ERR! You can get their info via:
npm ERR!     npm owner ls yo
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/jesselawson/.node_modules_global/lib/node_modules/npm-debug.log

person jesse lawson    schedule 02.11.2015    source источник
comment
Вы устанавливали node/npm, будете варить или каким методом?   -  person alphapilgrim    schedule 10.12.2015


Ответы (2)


Эта ошибка обычно возникает из-за того, что кто-то в какой-то момент использовал sudo и испортил права доступа к каталогу пакетов npm. Как правило, никогда не используйте sudo.

Итак, как вы можете это исправить? Вот пара пунктов по устранению неполадок:

  1. Убедитесь, что вы обновили npm до последней версии (npm install -g npm). В npm 2.x были некоторые условия гонки, которые пытались запустить yodoctor до его установки.
  2. Убедитесь, что глобальные папки модуля npm относятся к chown/chmod вашему пользователю.
  3. Убедитесь, что бинарные файлы модуля npm находятся в вашем PATH.
  4. Если ничего не работает, вы можете принудительно установить его, запустив npm i -g yeoman-doctor && npm i -g yo, но это действительно последнее решение.
person Simon Boudrias    schedule 03.02.2016

Просто следующая команда сделает свое дело:

sudo npm install -g yo

если нет, найдите, где находится yo, добавьте его в путь следующим образом:

export PATH="$PATH:<path where yo is installed>"
person DILIP KOSURI    schedule 16.03.2016
comment
Я хотел подчеркнуть, что я думаю, что ответ Саймона Будриаса больше подходит для моей ситуации и кажется более подходящим решением. Это произошло после получения нескольких ситуаций, требующих sudo, и, наконец, изменения моего префикса npm: stackoverflow.com/a/25447784/1091943 . Подобно тому, что сказал baksosapi, обновление npm и -h yo install снова сработали. github.com/yeoman/yo/issues/465#issuecomment-237986250 - person Pysis; 20.07.2017