如何解决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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。