ノードモジュールのピア依存関係とは何ですか?

package.jsonファイルのpeerDependenciesフィールドの簡単な説明

いくつかのpackage.jsonファイルの場合、次のような数行が表示される場合があります。

{
  //...
  "peerDependencies": {
    "libraryName": "1.x"
  }
}

あなたはすでに見たかもしれませんdependenciesそしてdevDependencies、 だがしかしpeerDependencies

dependenciesプロジェクトが依存するパッケージです。

devDependencies開発段階で必要なパッケージです。次のようなテストフレームワークを言います冗談またはのような他のユーティリティバベルまたはESLint

どちらの場合も、パッケージをインストールすると、その依存関係とdevDependenciesはによって自動的にインストールされます。npm

peerDependencies異なっています。それらは自動的にインストールされません。

依存関係がpeerDependencyとしてパッケージにリストされている場合、自動的にはインストールされません。代わりに、パッケージを含むコードには、依存関係としてパッケージを含める必要があります。

npm実行すると警告が表示されますnpm installそして、この依存関係は見つかりません。

例:パッケージとしましょうa依存関係を含むb

a/package.json

{
  //...
  "dependencies": {
    "b": "1.x"
  }
}

パッケージb順番にパッケージが欲しいcpeerDependencyとして:

b/package.json

{
  //...
  "peerDependencies": {
    "c": "1.x"
  }
}

したがって、パッケージAに追加する必要がありますc依存関係として、それ以外の場合はパッケージをインストールするときb、npmは警告を出します(そしてコードは実行時に失敗する可能性があります):

a/package.json

{
  //...
  "dependencies": {
    "b": "1.x",
    "c": "1.x"
  }
}

バージョンは互換性がある必要があるため、peerDependencyが次のようにリストされている場合2.x、インストールできません1.xまたは別のバージョン。それはすべて続くセマンティックバージョニング

私の無料ダウンロードNode.jsハンドブック


その他のノードチュートリアル: