28

この質問を投稿しているときに答えを見つけましたが、他の誰かを助けるためにここに両方を投稿し、おそらく誰かが何が起こったのかを助けることができます.

私が実行すると:

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

私が試した他のこと:

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

2 に答える 2

57

私の間違いは、npm list コマンドに -g を追加していませんでした。

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

次に、次のコマンドを実行して、フラットアイアンを使用しているものを確認しました。

npm list -g flatiron

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

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

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

実際にジツを維持したい場合は、アンインストールする代わりに更新できたはずです(@BenAtkinに感謝):

npm install -g jitsu

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

于 2013-02-14T22:17:02.217 に答える
9

jitsu をインストールしたままにしておくことを気にしない場合は、jitsu をアップグレードするだけで動作するはずです。

npm install -g jitsu
npm install -g grunt-cli
于 2013-02-20T06:50:03.687 に答える