Webpack 4 と 5 の両方をサポートするために維持しているプラグインをアップグレードしているときに、次のレンガの壁に遭遇しました。情報がまったく見つからず、Gitterの誰も助けてくれないようです。
プラグインは、問題なく動作するアセット (SVG スプライトマップ) を追加しcompilation.assets
ます。プラグインには、他のプラグインとの相互運用性に必要な作成されたチャンクをユーザーが保持できる機能があります。Webpack 4 の最小限の作業コードは、次のようなものです (そして、私にはいつも少しハッキリしているように感じましたが、うまくいきました ♂️):
// OutputOptions.chunk.name would equal 'spritemap' in this example
const chunk = compilation.addChunk(outputOptions.chunk.name);
const module = new RawModule('', `${outputOptions.chunk.name}-dummy-module`);
chunk.addModule(module);
Webpack 5 で同じアプローチを使用すると、次のエラーがスローされます。
ERROR in spritemap.js
No code generation entry for spritemap-dummy-module (existing entries: <path-to>/svg-spritemap-webpack-plugin/examples/simple/src/index.js)
Chunk.addModule
また、代わりに使用して修正できる廃止予定の警告も表示されますcompilation.chunkGraph.connectChunkAndModule(chunk, module);
が、これは (明らかに) コード生成エントリ エラーを取り除きません。