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

Npm peerDependency проблема с хрюканьем и плоской стороной

Во время публикации этого вопроса я выяснил ответ, но я напишу оба здесь, если он поможет кому-то другому, и, возможно, кто-то может помочь с почему того, что произошло.

Когда я запускаю:

sudo npm install -g grunt

в последней части этого слова говорится:

/usr/bin/grunt -> /usr/lib/node_modules/grunt/bin/grunt
npm ERR! peerinvalid The package flatiron does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer [email protected] wants [email protected]~0.1.9
npm ERR! peerinvalid Peer [email protected] wants [email protected]~0.1.9

npm ERR! System Linux 3.5.0-23-generic
npm ERR! command "nodejs" "/usr/bin/npm" "install" "-g" "grunt"
npm ERR! cwd /home/explunit
npm ERR! node -v v0.8.19
npm ERR! npm -v 1.2.9
npm ERR! code EPEERINVALID
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/explunit/npm-debug.log
npm ERR! not ok code 0

Как вы можете видеть выше, я нахожусь на node 0.8.19 и npm 1.2.9 (последнее, что происходит от ppa: chris-lea на Ubuntu 12.10).

Другие вещи, которые я пробовал:

  • То же самое произошло при установке новой Ubuntu. Нет ошибок. Выход script выглядит одинаково до тех немногих строк ошибок.
  • Ran "sudo npm cache clean" и попробовал еще раз. Не повезло.
  • Ran "npm list", и в списке не было ничего другого.
4b9b3361

Ответ 1

Моя ошибка не добавляла -g в команду списка npm.

npm list -g

Как только я это сделал, я увидел список глобальных модулей (например, bower, jshint, mocha) и в самом конце:

npm ERR! peer invalid: [email protected] /usr/lib/node_modules/jitsu/node_modules/flatiron
npm ERR! not ok code 0

Затем я запустил эту команду, чтобы посмотреть, какие из них используют flatiron:

npm list -g flatiron

В этом случае это был джитсу, модуль, который я больше не использую. Я побежал

sudo npm uninstall -g jitsu
sudo npm uninstall -g grunt

И снова запустил исходную команду. Обратите внимание, что для тех, кто придет позже на этот вопрос: правильный модуль для переустановки командной строки grunt после версии 0.4 теперь grunt-cli, NOT grunt нравится, когда я задал оригинальный вопрос.

Если я действительно хотел сохранить jitsu, я мог бы обновить его, а не удалять его (спасибо @BenAtkin):

npm install -g jitsu

И снова запустите исходную команду. См. это сообщение в блоге о том, что peerDependency добавлено в node 0.8.19 для получения дополнительной информации.

Ответ 2

Если вы не возражаете против установки джитсу, вы можете просто обновить джитсу, и это должно сработать.

npm install -g jitsu
npm install -g grunt-cli