npm installでpeerinvalidエラーが出た時の解消方法

  • 18
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

npm installコマンドでnpmのモジュールをインストールする際に、依存ライブラリのバージョンが解決しきれなくてエラーになる場合があります。
今日私の環境で起きた例です。

package.json
{
  "name": "~~~~~~",
  "version": "0.0.0",
  "description": "test",
  "main": "Gruntfile.js",
  "directories": {
    "doc": "docs"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "~~~~~~~~",
  "dependencies": {
    "handlebars": "~1.1.2",
    "ember-template-compiler": "~1.3.0-beta.2",
    "grunt": "~0.4.1",
    "grunt-ember-templates": "~0.4.18",
    "grunt-contrib-watch": "~0.5.3",
    "grunt-karma": "~0.6.2",
    "karma": "~0.10.0",
    "karma-requirejs": "~0.2.0",
    "karma-mocha": "~0.1.1",
    "karma-chai": "0.0.2",
    "karma-junit-reporter": "~0.2.1"
  }
}

上記ファイルがあるディレクトリにて、npm installと実行した結果、下記エラーが出力されました。

npm ERR! peerinvalid The package karma does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer grunt-karma@0.6.2 wants karma@~0.10.0
npm ERR! peerinvalid Peer karma-requirejs@0.2.2 wants > karma@>=0.9
npm ERR! peerinvalid Peer karma-mocha@0.1.4 wants karma@>=0.12.8
npm ERR! peerinvalid Peer karma-chai@0.0.2 wants karma@>=0.9
npm ERR! peerinvalid Peer karma-junit-reporter@0.2.2 wants karma@>=0.9
npm ERR! peerinvalid Peer karma-chrome-launcher@0.1.4 wants karma@>=0.9.3
npm ERR! peerinvalid Peer karma-firefox-launcher@0.1.3 wants karma@>=0.9
npm ERR! peerinvalid Peer karma-html2js-preprocessor@0.1.0 wants karma@>=0.9
npm ERR! peerinvalid Peer karma-jasmine@0.1.5 wants karma@>=0.9
npm ERR! peerinvalid Peer karma-script-launcher@0.1.0 wants karma@>=0.9
npm ERR! peerinvalid Peer karma-coffee-preprocessor@0.1.3 wants karma@>=0.9
npm ERR! peerinvalid Peer karma-phantomjs-launcher@0.1.4 wants karma@>=0.9

この場合、1行目でkarmaがどのバージョンを使うべきか解決しきれないことが分かります。
2行目以降に、どのライブラリがkarmaのどのバージョン(以降)を使用するかが出力されますので、一つ一つ確認します。
今回のケースですと、下記のkarma-mochaがkarmaのバージョンで唯一0.12系を求めていることが分かります。karma-mochaのバージョンを、karmaの要求バージョンが0.9系のものに下げることで解決しました。

npm ERR! peerinvalid Peer karma-mocha@0.1.4 wants karma@>=0.12.8

npm install したときにpeerinvailedと怒られたときの対応 という記事もあり、こちらでは既存のgenerator-angularが要求するgenerator-karmaが古かったので、generator-karma側を合わせた、という対処方法になっています。

同様のエラーが起きた場合の参考になれば幸いです。