web-dev-qa-db-ja.com

Npm peer dependenciesを自動的にインストールするにはどうすればいいですか?

たとえば、Angular 2をインストールすると、次のようになります。

npm install --save angular2
[email protected] /Users/doug/Projects/dougludlow/temp
├── [email protected] 
├── UNMET PEER DEPENDENCY es6-promise@^3.0.2
├── UNMET PEER DEPENDENCY es6-shim@^0.33.3
├── UNMET PEER DEPENDENCY [email protected]
├── UNMET PEER DEPENDENCY [email protected]
└── UNMET PEER DEPENDENCY [email protected]

npm WARN [email protected] requires a peer of es6-promise@^3.0.2 but none was installed.
npm WARN [email protected] requires a peer of es6-shim@^0.33.3 but none was installed.
npm WARN [email protected] requires a peer of [email protected] but none was installed.
npm WARN [email protected] requires a peer of [email protected] but none was installed.
npm WARN [email protected] requires a peer of [email protected] but none was installed.

ピアの依存関係もインストールするような、npmに渡すことができる魔法のようなフラグはありますか?見つけられなかった...ピアの依存関係を手動でコピーして貼り付けて、正しいバージョンがあることを確認するのは面倒です。

言い換えれば、私はむしろする必要はありません。

npm install --save [email protected] es6-promise@^3.0.2 es6-shim@^0.33.3 [email protected] [email protected] [email protected]

より良い方法は何ですか?

210
Douglas Ludlow

ピア依存関係の自動インストールは、解決しようとした以上の問題を引き起こすため、npm 3で明示的に削除されました。あなたはそれについて例えばここで読むことができます:

いいえ、できません。与えられた理由から、npm 3以上では自動的にインストールできません。

138
migg

私はpackage.jsonを正確な値の警告で書き換えることでそれを解決しました:

npm WARN [email protected] requires a peer of es6-shim@^0.33.3 but none was installed.

package.json: "es6-shim": "^ 0.33.3"、

npm WARN [email protected] requires a peer of [email protected]

package.json: "reflect-metadata": "0.1.2"、

Delete node_modules directory

npm install
27
MrLehiste

このシナリオや他の人に役立つチートコード...

├──アンメットピア依存性@ angular/common @ 4.0.2

├──UNMET PEER DEPENDENCY @ angular/compiler @ 4.0.2

├──UNMET PEER DEPENDENCY @ angular/compiler-cli @ 4.0.2

├──アンメットピア依存性@ angular/core @ 4.0.2

├──アンメットピア依存性@ angular/forms @ 4.0.2

├──アンメットピア依存性@ angular/http @ 4.0.2

├──UNMET PEER DEPENDENCY @ angular /プラットフォームブラウザ@ 4.0.2

├──UNMET PEER DEPENDENCY @角度付き/プラットフォームブラウザ動的@ 4.0.2>

  1. コピー&ペースト あなたのエラーをコードエディタに入力してください。
  2. あなたのカーソルで 不要な 部分をハイライトします。この場合「├──UNMET PEER DEPENDENCY」
  3. command + d を何度か押します。
  4. を2回削除 を押します。 (誤って「├──UNMET PEER DEPENDENCY」を強調表示した場合は、スペースを押してください。)
  5. 一回押します。 「npm install」を追加してください。
  6. 一回押します。 '--saveを追加
  7. あなたのものをcliにコピーして実行してください。

npmインストール@ angular/common @ 4.0.2 @ angular/compiler @ 4.0.2 @ angular/compiler-cli @ 4.0.2 @ angle/core @ 4.0.2 @ angle/forms @ 4.0.2 @ angle/http @ 4.0 .2 @ angular /プラットフォームブラウザ@ 4.0.2 @ angular /プラットフォームブラウザ - 動的@ 4.0.2 --save

15
zoomlar

プロジェクト npm-install-peers は、ピアを検出してインストールします。

v1.0.1の時点では、自動的にpackage.jsonに書き戻すことはサポートされていません。これは、ここでの必要性を本質的に解決するでしょう。

機内で発行するサポートを追加してください: https://github.com/spatie/npm-install-peers/issues/4

12
deepelement