web-dev-qa-db-ja.com

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

私はWindows 10にいて、Node 5.6.0とnpm 3.6.0を使っています。私は作業フォルダにangular-materialとmdiをインストールしようとしています。 npmインストールangle-material mdi errors with:

+-- [email protected]

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

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

+-- [email protected]

+-- UNMET PEER DEPENDENCY angular-messages@^1.5.0 `-- [email protected]

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

npm WARN [email protected] requires a peer of
angular-animate@^1.5.0 but none was installed. 

npm WARN [email protected] requires a peer of angular-aria@^1.5.0
but none was installed. 

npm WARN [email protected] requires a peer of
angular-messages@^1.5.0 but none was installed.

AngularJS MaterialとMDIをインストールするには、どうすればよいでしょうか。

178
Reza

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


コメントに返信:

それはそのメッセージの中に正しい、それはあなたが行方不明になっている学科を示しています

UNMET PEER DEPENDENCY angular-animate@^1.5.0 +-- 
UNMET PEER DEPENDENCY angular-aria@^1.5.0 +-- [email protected] +
UNMET PEER DEPENDENCY angular-messages@^1.5.0 `-- [email protected]` 

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

168
Datsik

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

それから走りなさい

rm -rf node_modules/
npm cache clean
npm install

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

60
JayKrish

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

npm install -g npm
24
Anuj Sharma

npm-install-peers 私のために働いた。

npm install -g npm-install-peers
14
alexoviedo999

このエラーの最も考えられる原因の1つは、package.jsonで古いバージョンを定義したことです。この問題を解決するには、package.jsonのバージョンをnpmが問題を訴えているバージョンと一致するように変更します。

完了したら、npm installを実行してください。

5
Thomas Mwania

わかりましたので、私はこれを理解しようとして長い間苦労しました。あなたが他のすべての方法を使い果たしたときのために、これは nuclear オプションです..

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

完了しても問題が解決したら、実際のコードをこの新しいプロジェクトにインポートします。新しいバージョンの角度の原因によるコンパイルエラーを修正します。

それは私のためにそれを何をしたのか.. wtfを把握しようとしているの6時間対リワークの1時間は間違っていた。

3
user230910

今日利用可能です Angular 2 rc.7 、そして私は[email protected] UNMET PEER DEPENDENCYに関して同様の問題を抱えていました。

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

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

2
ktretyak

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

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

UNMET PEER DEPENDENCY [email protected]

npm WARN [email protected] requires a peer of packageA@^3.1.0 but none was installed.

つまり、packageAのバージョン4.2.0をインストールしましたが、[email protected]にはバージョン3.x.xのpakageAが必要です。 ( ^ の説明)

そのため、packageAを3.x.xにダウングレードすることでこのエラーを解決できますが、通常はパッケージをダウングレードしたくないでしょう。
幸いなことに、場合によっては、packageBがpackageAに追いついておらず、packageBのメンテナがpackageAのピア依存関係を4.x.xに引き上げようと努力しています。
その場合は、npmまたはgithubにpackageAのバージョン4.2.0を必要とするより新しいバージョンのpackageBがあるかどうかを確認できます。

例えば、リリースページに行く enter image description here

多くの場合、あなたはこのような依存関係についての大きな変化を見つけることができます。

packageB v4.0.0-beta.0

BREAKING CHANGE
package: requires packageA >= v4.0.0

リリースページに何も見つからない場合は、issueページに移動し、peerのようなキーワードでissueを検索してください。あなたは役に立つ情報を見つけるかもしれません。

enter image description here

この時点で、2つの選択肢があります。

1)希望のバージョンにアップグレードする
2)しばらくの間エラーを残して、安定版がリリースされるまで待ちます。

オプション1を選択した場合:
多くの場合、このバージョンにはlatesttag がないため、安定していません。そのため、このアップデートで何が変更されたのかをチェックし、何かが壊れないようにする必要があります。

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

どちらの場合も、それが何も壊れないかどうかを徹底的にテストすることが最善です。

最後に、なぜあなたが手動でそのようなことをしなければならないのか知りたいのなら、 このリンクはよく説明しています。

1
ohkts11

与えられた答えはいつもうまくいかない。それでも問題が解決しない場合package.jsonでも正しいシンボルを使っていることを確認してください。これはその頭痛を直すために非常に重要です。例えば:

warning " > @angular/[email protected]" has incorrect peer dependency "TypeScript@>=2.4.2 <2.7".
warning " > [email protected]" has incorrect peer dependency "TypeScript@>=2.4.2 <2.6".

それで、私のTypeScriptは2.4.2と2.6の間にある必要がありますか?

そこで私はTypeScriptライブラリを"TypeScript": "^2.7"の使用から"TypeScript": "^2.5"の使用に変更しました。正しいようですか?

違う。

^は、あなたが"TypeScript": "2.5"または"2.6"または"2.7"などを使ってnpmで大丈夫であることを意味します...

^~の意味を知りたい場合は、次を参照してください。 package.jsonのチルダ(〜)とキャレット(^)の違いは何ですか?

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

0
Samuel Thompson