web-dev-qa-db-ja.com

グラントとフラットアイアンピアでのnpm peerDependencyの問題

この質問を投稿しているときに答えを見つけましたが、誰かに役立つ場合に備えて、ここに両方を投稿します。おそらく誰かがwhy起こった。

私が走ると:

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(Ubuntu 12.10のppa:chris-leaから取得した最新のもの)を使用しています。

私が試した他のこと:

  • Ubuntuの新規インストールでも同じでした。エラーはありません。スクリプトの出力は、最後の数行のエラー行まで同じに見えます。
  • 「Sudo npm cache clean」を実行して、再試行しました。運が悪い。
  • 「npm list」を実行し、他に何もリストされていなかった
28
explunit

私の間違いは、npm listコマンドに-gを追加することではありませんでした。

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

次に、このコマンドを実行して、flatironを使用しているコマンドを確認しました。

npm list -g flatiron

この場合、私がもう使用していないモジュールであるjitsuでした。私は走った

Sudo npm uninstall -g jitsu
Sudo npm uninstall -g grunt

その後、元のコマンドを再度実行しました。 この質問に後で来る人への注意: .4のリリース の後にグローバルにgruntコマンドラインを再インストールするための正しいモジュールはgrunt-cli、元の質問をしたときのようなgruntではありません。

実際にjitsuを保持したい場合は、アンインストールする代わりに更新することができます(@BenAtkinに感謝):

npm install -g jitsu

その後、元のコマンドを再度実行します。詳細については、 ノード0.8.19に追加されるpeerDependencyに関するこのブログ投稿 を参照してください。

58
explunit

Jitsuをインストールしたままにしてもかまわない場合は、jitsuをアップグレードするだけで問題ありません。

npm install -g jitsu
npm install -g grunt-cli
9
Benjamin Atkin