Webpack 5插件:没有代码生成条目用于模块错误

问题描述

在升级我要维护的插件以同时支持Webpack 4和5时,我遇到了以下砖墙,我根本找不到任何信息,Gitter上似乎没人能够提供帮助。

该插件将资产(SVG spritemap)添加到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);来解决,但这(显然)并没有消除代码生成输入错误。

解决方法

由于没有收到有关Gitter和Stack Overflow的任何回复,我最终发布了与GitHub issue相同的问题。 Tobias Koppers向我提出了正确的建议,以确保将模块添加到compilation.modules中。因此,最终通过以下代码解决了这个特定问题:

compilation.modules.add(module);

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...