Проблема npm peerDependency с grunt и flatiron peer

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

Когда я бегу:

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 flatiron@~0.1.9
npm ERR! peerinvalid Peer [email protected] 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», и больше ничего не было в списке

person explunit    schedule 14.02.2013    source источник


Ответы (2)


Моя ошибка заключалась в том, что я не добавил -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

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

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 для больше фона.

person explunit    schedule 14.02.2013
comment
Спасибо за вопрос и ответ, я сходил с ума, пытаясь установить браузер, с той же ошибкой и тем же модулем (джитсу), который все испортил. Мне действительно не было ясно, что проблема была с моей средой, я был убежден, что проблема была с браузером, чуть не поднял проблему, смущение предотвратило спасибо :) - person Michael Dausmann; 13.08.2013

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

npm install -g jitsu
npm install -g grunt-cli
person Benjamin Atkin    schedule 20.02.2013