npm peerDependency проблема с ворчанием и flatiron одноранговым

Размещая этот вопрос, я разобрался с ответом, но я опубликую оба здесь на случай, если это поможет кому-то еще, и, возможно, кто-то может помочь с объяснением того, что произошло.

Когда я бегу:

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 flatiron-cli-config@0.1.3 wants flatiron@~0.1.9
npm ERR! peerinvalid Peer flatiron-cli-users@0.1.1 wants flatiron@~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

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

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

  • Сделал то же самое на свежей установке Ubuntu. Нет ошибок Вывод скрипта выглядит одинаково до тех пор, пока не появятся последние несколько строк ошибок.
  • Запустил "sudo npm cache clean" и попытался снова. Неудачно.
  • Запустил "npm list" и больше ничего не было в списке

2 ответа

Решение

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

npm list -g

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

npm ERR! peer invalid: flatiron@0.3.0 /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 НЕ grunt например, когда я задал оригинальный вопрос.

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

npm install -g jitsu

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

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

npm install -g jitsu
npm install -g grunt-cli
Другие вопросы по тегам