首页 > 解决方案 > Webpack 5 插件:模块错误没有代码生成条目

问题描述

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

该插件添加了一个可以正常工作的资产(SVG spritemap)compilation.assets。插件中有一个功能允许用户保留创建的块,这是与其他一些插件互操作所需的。Webpack 4 的最小工作代码是这样的(我总是觉得有点 hacky,但它确实有效 ‍♂️):

// 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);改用它来修复它,但这(显然)并没有消除代码生成条目错误。

标签: webpackwebpack-pluginwebpack-5

解决方案


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

compilation.modules.add(module);

推荐阅读