28 votes

problème de peerDependency de npm avec grunt et flatiron peer

En postant cette question, j'ai trouvé la réponse, mais je vais poster les deux ici au cas où cela aiderait quelqu'un d'autre, et peut-être que quelqu'un peut m'aider à trouver la réponse. pourquoi de ce qui s'est passé.

Quand je cours :

sudo npm install -g grunt

la dernière partie de l'article dit :

/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

Comme vous pouvez le voir dans l'image ci-dessus, je suis sur node 0.8.19 et npm 1.2.9 (le dernier qui provient de ppa:chris-lea sur Ubuntu 12.10).

D'autres choses que j'ai essayées :

  • J'ai fait la même chose sur une nouvelle installation Ubuntu. Aucune erreur. La sortie du script est la même jusqu'à ces quelques dernières lignes d'erreur.
  • J'ai lancé "sudo npm cache clean" et j'ai réessayé. Pas de chance.
  • J'ai lancé "npm list" et il n'y avait rien d'autre dans la liste.

58voto

explunit Points 8317

Mon erreur a été de ne pas ajouter le -g à la commande npm list.

npm list -g

Une fois que j'ai fait cela, j'ai vu ma liste de modules installés globalement (par exemple, bower, jshint, mocha), et à la toute fin :

npm ERR! peer invalid: flatiron@0.3.0 /usr/lib/node_modules/jitsu/node_modules/flatiron
npm ERR! not ok code 0

Puis j'ai lancé cette commande pour voir lesquels utilisaient flatiron :

npm list -g flatiron

Dans ce cas, c'était le jitsu, un module que je n'utilise plus. J'ai couru

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

Puis j'ai relancé la commande originale. Remarque à l'intention de ceux qui viendront plus tard répondre à cette question : Le module correct pour réinstaller grunt en ligne de commande globalement après la sortie de la 0.4 est maintenant grunt-cli , PAS grunt comme quand j'ai posé la question originale.

Si j'avais vraiment voulu garder le jitsu, j'aurais pu le mettre à jour au lieu de le désinstaller (merci @BenAtkin) :

npm install -g jitsu

Et ensuite, exécutez à nouveau la commande originale. Voir cet article de blog sur l'ajout de peerDependency dans le nœud 0.8.19 pour plus d'informations.

9voto

bat Points 5380

Si cela ne vous dérange pas de garder jitsu installé, vous pouvez simplement mettre à jour jitsu et cela devrait fonctionner.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X