npm UNMET PEER DEPENDENCY警告を修正するにはどうすればよいですか?


223

私はWindows 10で、ノード5.6.0とnpm 3.6.0を使用しています。angular-materialとmdiを作業フォルダーにインストールしようとしています。npmが次のように角度材料MDIエラーをインストールする

+-- angular@1.5.0

+-- UNMET PEER DEPENDENCY angular-animate@^1.5.0

+-- UNMET PEER DEPENDENCY angular-aria@^1.5.0

+-- angular-material@1.0.6

+-- UNMET PEER DEPENDENCY angular-messages@^1.5.0 `-- mdi@1.4.57

npm WARN enoent ENOENT: no such file or directory, open
'C:\Users\xxxxx\Desktop\ngClassifieds\package.json' 

npm WARN angular-material@1.0.6 requires a peer of
angular-animate@^1.5.0 but none was installed. 

npm WARN angular-material@1.0.6 requires a peer of angular-aria@^1.5.0
but none was installed. 

npm WARN angular-material@1.0.6 requires a peer of
angular-messages@^1.5.0 but none was installed.

これをどのように解決してAngularJS MaterialとMDIをインストールしますか?


これらのタイプのエラーは問題を引き起こしますか?
blackHawk 2016

Reza向けではないので、遅れますが、他の人のために...これを試してください:npm view angular-material peerDependencies
peter70

1
一般に、満たされていない依存関係を常に解決する必要はありません。たとえば、some-packageがother-package@^1.5.0に依存していて、other-package @ 2.0.0がインストールされている場合、バージョンをロールバックする必要がない場合があります。新しいバージョンで実際に問題が発生しているかどうかをテストすることをお勧めします。
ジョンパンコビッツ

回答:


203

npmはピアの依存関係をインストールしなくなったため、手動でインストールする必要があります。必要npm installなdepで実行してから、メインの依存関係を再度インストールしてください。


コメントに返信:

それはそのメッセージの中で正しいです

UNMET PEER DEPENDENCY angular-animate@^1.5.0 +-- 
UNMET PEER DEPENDENCY angular-aria@^1.5.0 +-- angular-material@1.0.6 +
UNMET PEER DEPENDENCY angular-messages@^1.5.0 `-- mdi@1.4.57` 

だからあなたはする必要があります npm install angular angular-animate angular-aria angular-material angular-messages mdi


インストールできるように、角材のdepを見つける方法はありますか?
Reza

2
これらの新しい依存関係を自分に追加する必要がありますpackage.jsonか?
0xcaff

2
理想的な
@caffinatedmonkey

9
@caffinatedmonkey --saveスイッチnpm を指定すると、package.jsonが更新されます(または--save-devパッケージが開発依存関係である場合)
McGuireV10

33
npmがそれらすべての依存関係を管理するようにするためのnpmの要点ではありませんか?npmインストールを実行すると、手動でcomposer.jsonファイルに手動で追加する必要がある、満たされていない依存関係の束のリストを取得します。その時点でnpmから取得している値はどれですか。
chiliNUT

66

UNMET PEER DEPENDENCYpackage.jsonファイルで指定された1つ以上のモジュールの依存関係が満たされない場合、エラーがスローされます。警告を注意深く確認し、package.json依存関係の正しいバージョンでファイルを更新してください。

次に実行します

rm -rf node_modules/
npm cache clean
npm install

これにより、必要なすべての依存関係が正しくインストールされます。


3
ピアの依存関係とは
aWebDeveloper 2017年

パッケージをインストールすると、他のパッケージの特定のバージョンに依存する場合があります。パッケージの正しい依存バージョンを提供しない場合、「ピア依存関係」は満たされません。そのため、それを解決するには、依存パッケージの予想されるバージョンを更新する必要があります。
JayKrish

4
それは私にはうまくいきませんでした。ピアが必要であるという警告がまだ表示されます。
Adam Zerner、2017

1
受け入れられているソリューションよりもはるかにきれいです!この1セットのコードは、opの問題の考えられるすべてのケースを処理します。
HoldOffHunger 2017

npm cache cleanコマンドを使用すると、エラーが発生します。npm@ 5以降、npmキャッシュは破損の問題から自己回復し、キャッシュから抽出されたデータは有効であることが保証されています。すべてが一貫していることを確認したい場合は、代わりに「npm cache verify」を使用してください。npm ERR!キャッシュ全体を削除する場合は、-forceを指定してこのコマンドを再実行してください。
CodeMonkey 2017年

30

私の場合、すべての依存関係はすでにそこにありました。クラッシュした可能性があるため、その場合はNPMを更新してください。それは私の問題を解決しました。

npm install -g npm

私のために働いた。をUNMET PEER DEPENDENCY typescriptインストールしようとすると、エラーが発生しましたtslint。npmを更新したら、まずtypscriptをインストールしてから、tslintをインストールする必要がありました。
Ravimallya 2017

何らかの理由で、独自の依存関係がすべて更新されるまで、何度か実行する必要がありました。
Coderer 2017年

これは私にとってnpmを壊し、たくさんのエラーをもたらしました。
ジャック

14

npm-install-peersがうまくいきました。

npm install -g npm-install-peers

1
「このパッケージにはpeerDependencyがないようです」ただし、「npm ERR!peer dep missing:@ angular / common @ ^ 5.0.0 || ^ 6.0.0、@ agm / core @ 1.0.0-beta.3で必要」などのメッセージがいくつかあります
Almir Campos

2
このパッケージは、現在のパッケージの直接のピアdepのみをインストールし、パッケージのdepのピアdep(子のピア)を処理しません。
Alex Skrypnyk

7

このエラーの最も考えられる原因の1つは、package.jsonで古いバージョンを定義したことである可能性があります。この問題を解決するには、package.jsonのバージョンを変更して、npmが不満を持っているものに一致させます。

完了したら、npm installとvoila !!を実行します。


6

この回答はすべてのケースに当てはまるわけではありませんが、単にと入力してもエラーを解決できない場合はnpm install 、この手順が役立つことがあります。

このエラーが発生したとしましょう。

UNMET PEER DEPENDENCY packageA@4.2.0

npm WARN packageB@3.3.0 requires a peer of packageA@^3.1.0 but none was installed.

つまり、packageAのバージョン4.2.0をインストールしましたが、packageB @ 3.3.0にはpakageAのバージョン3.xxが必要です。(^の説明

したがって、packageAを3.xxにダウングレードすることでこのエラーを解決できますが、通常はパッケージをダウングレードする必要はありません。
良いニュースは、一部のケースでは、packageBがpackageAに追いついておらず、packageBのメンテナーがpackageAのピア依存関係を4.xxに上げようとしているということです
。その場合、より高いバージョンのpackageBがあるかどうかを確認できます。 npmまたはgithubにバージョン4.2.0のpackageAが必要です。

たとえば、リリースページに移動ここに画像の説明を入力してください

多くの場合、このような依存関係に関する重大な変更を見つけることができます。

packageB v4.0.0-beta.0

BREAKING CHANGE
package: requires packageA >= v4.0.0

リリースページで何も見つからない場合は、発行ページに移動し、などのキーワードで発行を検索しますpeer。役立つ情報が見つかるかもしれません。

ここに画像の説明を入力してください

この時点で、2つのオプションがあります。

1)必要なバージョンにアップグレードします
。2)しばらくエラーを残し、安定したバージョンがリリースされるまで待ちます。

option1を選択した場合:
多くの場合、バージョンにはlatest タグがないため、安定していません。したがって、この更新で何が変更されたかを確認し、何も壊れないことを確認する必要があります。

オプション2を選択した場合:
pakageAのバージョン3から4へのアップグレードが簡単な場合、またはpakageBのメンテナーがバージョン4のpakageAをまだテストしていないが問題がないと言っている場合は、エラーを残すことを検討してください。

どちらの場合も、何も破損しないかどうかを徹底的にテストすることをお勧めします。

最後に、なぜそのようなことを手動で行う必要があるのか​​を知りたい場合は、このリンクで詳しく説明しています。


3

わかりましたので、これを理解しようと長い間苦労しました。ここに他のすべての方法を使い果たした場合の核のオプションがあります。

  • PCに新しいフォルダを作成します。
  • 角度の新しいインストールをダウンロード-私はこのガイドを使用しました:https : //coursetro.com/posts/code/55/How-to-Install-an-Angular-4-App
  • それを実行し、それが機能することを確認してください
  • 次に、package.jsonファイルから依存関係を1つずつインストールします
  • それぞれがインストールされた後にそれを実行します

完了し、それが機能する場合は、実際のコードをこの新しいプロジェクトにインポートします。角度エラーの新しいバージョンのコンパイルエラーを修正します。

それは私のためにそれをしました.. 1時間のリワークvs 6時間のwtfを理解しようとするのは間違っていました。


OPがAngularJS
Edric、2017

3

与えられた答えが常に機能するとは限りません。問題が解決しない場合。でも正しい記号を使用していることを確認してくださいpackage.json。これはその頭痛を直すために非常に重要です。例えば:

warning " > @angular/compiler-cli@5.2.7" has incorrect peer dependency "typescript@>=2.4.2 <2.7".
warning " > tsickle@0.25.6" has incorrect peer dependency "typescript@>=2.4.2 <2.6".

私のタイプスクリプトは2.4.2と2.6の間にある必要がありますか?

そこで、typescriptライブラリをからに変更"typescript": "^2.7"しました"typescript": "^2.5"。正しいようです?

違う。

^あなたが使用してNPMで大丈夫であることを意味し"typescript": "2.5"たり"2.6"または"2.7"等...

^~その意味を知りたい場合は、package.jsonのチルダ(〜)とキャレット(^)の違いは何ですか?

また、パッケージが存在することを確認する必要があります。たぶん"typescript": "2.5.9"、パッケージ番号の検索はありません。本当に安全であるためには、それらを意味を読みたくない場合は、~またはを削除して^ください。


この説明をありがとうございます。最初の(たとえばlibrary-one)がたとえばピアのピアを使用package@<2.6し、もう一方の(library-two)のピアを使用する2つのライブラリを使用するとどうなりpackage@>2.7ますか?次にpackage、コードベースでの2つのバージョンを処理する必要がありますか?どのように私は、私が使用している場合ことを知っているだろうlibrary-one私はそれを使用する必要がありpackage@2.5.9、私が使用したときにその間library-two私はそれを使用する必要がpackage@2.7.1
トニックス

2

今日、Angular 2 rc.7が利用可能になり、rxjs@5.0.0-beta.12UNMET PEER DEPENDENCYでも同様の問題が発生しました。

あなたが、私のように、単に置き換えられ@angular/...rc.6た場合@angular/...rc.7-それは十分ではありません。たとえば、バージョン@angular/routerがないためrc.6です。

この場合は、クイックスタートでpackage.jsonを確認してください。


OPがAngularJS
Edric、2017

-6

UNMET依存関係をグローバルにインストールすることで解決できます。

例:npm install -g @ angular / common @ 4.4.6

それぞれを1つずつインストールします。それは私のために働いた。


これは本当に最善の解決策ですか?プロジェクトの依存関係の実際の「問題」を無視するためにグローバルにインストールしますか?
qx3 2018年

1
これにより、依存関係がマシンにグローバルにインストールされます。共有環境では、同僚はこれを説明できません。
ACパトリス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.