webpack および npm モジュールを使用して Web サイトのコードを作成していますが、次の問題に遭遇しました。
私のコードは jQuery 3.1.1 を使用し、いくつかのプラグインを追加します。また、jQuery <= 2.2.4 にサブ依存関係を持つ依存関係を使用しています。問題は、モジュールが異なる jquery バージョンを使用しているため、サブ依存関係のオブジェクトが私の jQuery プラグインについて明らかに知らないことです。
すべての依存関係 (最上位およびネスト) を強制的に 1 つのバージョンの jQuery を使用するにはどうすればよいですか? したがって、require("jquery")
常に jQuery 3.1.1 に解決されます。
依存関係のバージョンをオーバーライドするために npm Shrinkwrap を使用しようとしましたが、うまくいかないようです。これは私の変更されたシュリンクラップ ファイルです。
{
"name": "example",
"version": "0.1.0",
"dependencies": {
"can": {
"version": "2.3.27",
"from": "can@>=2.3.23 <3.0.0",
"resolved": "https://registry.npmjs.org/can/-/can-2.3.27.tgz",
"dependencies": {
"jquery": {
"version": "3.1.1",
"from": "^3.1.1"
}
}
}
}
}
ただし、モジュールの依存関係は依然として jQuery 2.2.4 であり、npm install
出力されますnpm ERR! invalid: jquery@3.1.1 /path/.../can/node_modules/jquery
npm の代わりに webpack を使用して問題を解決するソリューションも受け入れられます。