2013-02-14 6 views
29

Durante la pubblicazione di questa domanda ho capito la risposta, ma posterò entrambi qui nel caso in cui aiuti qualcun altro, e forse qualcuno può aiutare con il perché di quello che è successo.npm problema peerDependency con peer grunt e flatiron

quando ho eseguito:

sudo npm install -g grunt 

l'ultima parte di essa dice:

/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 

Come si può vedere in quanto sopra, io sono sul nodo 0.8.19 e 1.2.9 NPM (l'ultimo che arriva da ppa: chris-lea su Ubuntu 12.10).

Altre cose che ho provato:

  • ha fatto lo stesso su una nuova installazione di Ubuntu. Nessun errore L'output dello script ha lo stesso aspetto fino a quelle ultime poche righe di errore.
  • Eseguire "sudo npm cache clean" e riprovare. Senza fortuna.
  • Ran "lista NPM" e non c'era altro elencato

risposta

59

Il mio errore non è stato aggiungendo il -g sul comando lista NPM.

npm list -g 

Una volta che ho fatto, ho visto la mia lista dei moduli installati a livello globale (ad esempio Bower, jshint, moka), e alla fine:

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

Poi mi sono imbattuto questo comando per vedere quali quelli stavano usando flatiron:

npm list -g flatiron 

In questo caso era jitsu, un modulo che non uso più. Ho eseguito

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

E quindi eseguito nuovamente il comando originale. Nota per chiunque si presenti più tardi a questa domanda: Il modulo corretto per reinstallare globalmente la riga di comando grunt dopo il release of 0.4 è ora grunt-cli, NON grunt come quando ho posto la domanda originale.

Se io in realtà voluto mantenere jitsu avrei potuto aggiornato invece di disinstallazione (grazie @BenAtkin):

npm install -g jitsu 

e quindi eseguire nuovamente il comando originale. Vedere this blog post about peerDependency being added in node 0.8.19 per ulteriori informazioni.

+0

Grazie per la domanda e la risposta, stava andando noci cercando di installare browserify, con lo stesso errore e lo stesso modulo (jitsu) scompigliare in su. Non era chiaro per me che il problema fosse con il mio ambiente, ero convinto che il problema fosse con browserify, quasi sollevato un problema, imbarazzo evitato grazie :) –

9

Se non ti dispiace tenere installato jitsu, puoi semplicemente aggiornare jitsu e questo dovrebbe funzionare.

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