我是external-svg-sprite-loader的维护者,我注意到当将它与 webpack 5 一起使用时,我收到以下警告:
[DEP_WEBPACK_CHUNK_MODULES_ITERABLE] DeprecationWarning: Chunk.modulesIterable: Use new ChunkGraph API
Run Code Online (Sandbox Code Playgroud)
构建通过,但我希望能够修复此弃用警告。但是,我找不到有关modulesIterable或 ChunkGraph API 的任何文档。我应该在哪里寻找它,这个问题的潜在解决方案是什么?
小智 6
如果你想在块中遍历模块,你可以这样做:
compilation.chunks.forEach(chunk => {
compilation.chunkGraph.getChunkModules(chunk).forEach((module) => {
// module is available here
})
});
Run Code Online (Sandbox Code Playgroud)
您可以在其源代码中找到此类的其他有用方法。如果您想分块操作模块,可能最好使用ModuleGraph类。例如:
compilation.chunks.forEach(chunk => {
compilation.chunkGraph.getChunkModules(chunk).forEach((module) => {
const exportInfo = compilation.chunkGraph.moduleGraph.getExportInfo(module);
})
});
Run Code Online (Sandbox Code Playgroud)
我遇到这个问题是因为我使用compilation.hooks.optimizeChunks来迭代编译中的所有模块。经过一番研究,我发现我可以使用compilation.hooks.optimizeModules来达到相同的结果。因此,我切换到后者并停止收到我的问题中提到的弃用警告。我想说,这是一个比迭代块中的模块更好的解决方案,因为 webpack 似乎已经在内部这样做了。
| 归档时间: |
|
| 查看次数: |
3929 次 |
| 最近记录: |