1. ホーム
  2. node.js

[解決済み] ネストされたNPM依存性のバージョンを上書きするにはどうすればよいですか?

2022-03-21 01:14:14

質問

を使いたいのですが grunt-contrib-jasmine NPMパッケージ。様々な依存関係があります。依存関係のグラフの一部は次のようになります。

─┬ [email protected]
 │ ├─┬ [email protected]
 │ │ ├─┬ [email protected]

残念ながら、このバージョンにはバグがあります。 phantomjs を使用すると、Mac OS X に正しくインストールできないことがあります。これは最新版で修正されています。

どうすれば grunt-lib-phantomjs の新しいバージョンを使用するように phantomjs ?

いくつかの補足説明。

解決方法は?

NPMの場合 v8.3 この場合、正しい対処法は overrides セクションの package.json ファイルを作成します。

の依存関係を具体的に変更する必要がある場合は、以下のようにします。 のバージョンを置き換えるなどです。 既知のセキュリティ問題、既存の依存関係をフォークに置き換える、または あるパッケージのバージョンがどこでも同じであることを確認すること。 という場合は、オーバーライドを追加してください。

オーバーライドは、依存関係ツリー内のパッケージを置き換える方法を提供します。 を別のバージョン、または完全に別のパッケージに変更することができます。これらの変更は のスコープを特定することも、曖昧にすることもできます。

fooパッケージが常にバージョン1.0.0としてインストールされるようにするには、次のようにします。 依存関係がどのバージョンであっても。

{
  "overrides": {
    "foo": "1.0.0"
  }
}

この他にも、あるパッケージが特定のパッケージ階層の依存関係にある場合にのみ、そのパッケージを上書きすることができる、より微妙な設定がいろいろあります。詳しくは https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides