npm install
コマンドでnpmのモジュールをインストールする際に、依存ライブラリのバージョンが解決しきれなくてエラーになる場合があります。
今日私の環境で起きた例です。
{
"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側を合わせた、という対処方法になっています。
同様のエラーが起きた場合の参考になれば幸いです。