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