如何修复 Chunk.modulesIterable 的弃用警告?
How to fix deprecation warning for Chunk.modulesIterable?
我是 external-svg-sprite-loader 的维护者,我注意到在将它与 webpack 5 一起使用时,我收到以下警告:
[DEP_WEBPACK_CHUNK_MODULES_ITERABLE] DeprecationWarning: Chunk.modulesIterable: Use new ChunkGraph API
构建通过,但我希望能够修复此弃用警告。但是,我找不到任何关于 modulesIterable
或 ChunkGraph API 的文档。我应该在哪里寻找它,这个问题的潜在解决方案是什么?
external-svg-sprite-loader is using Chunk.modulesIterable
(ref) 现在已弃用并被替换为 ChunkGraph
该包具有 webpack^4.1.0 (ref) 的对等依赖项,因此您可以将您的 Webpack 降级到 4.* 以删除警告或要求包维护者添加对 Webpack 的支持5.
你可以找到官方弃用说明here
如果你想遍历块中的模块,你可以这样做:
compilation.chunks.forEach(chunk => {
compilation.chunkGraph.getChunkModules(chunk).forEach((module) => {
// module is available here
})
});
您可以在 source code. If you want to manipulate modules in chunk, probably it's better to use ModuleGraph class 中找到此 class 的其他有用方法。例如:
compilation.chunks.forEach(chunk => {
compilation.chunkGraph.getChunkModules(chunk).forEach((module) => {
const exportInfo = compilation.chunkGraph.moduleGraph.getExportInfo(module);
})
});
我遇到这个问题是因为我使用 compilation.hooks.optimizeChunks to iterate through all modules in the compilation. After some research, I found that I could use compilation.hooks.optimizeModules 来获得相同的结果。因此,我切换到后者并停止收到问题中提到的弃用警告。我会说这是一个比在块中迭代模块更好的解决方案,因为 webpack 似乎已经在内部这样做了。
我是 external-svg-sprite-loader 的维护者,我注意到在将它与 webpack 5 一起使用时,我收到以下警告:
[DEP_WEBPACK_CHUNK_MODULES_ITERABLE] DeprecationWarning: Chunk.modulesIterable: Use new ChunkGraph API
构建通过,但我希望能够修复此弃用警告。但是,我找不到任何关于 modulesIterable
或 ChunkGraph API 的文档。我应该在哪里寻找它,这个问题的潜在解决方案是什么?
external-svg-sprite-loader is using Chunk.modulesIterable
(ref) 现在已弃用并被替换为 ChunkGraph
该包具有 webpack^4.1.0 (ref) 的对等依赖项,因此您可以将您的 Webpack 降级到 4.* 以删除警告或要求包维护者添加对 Webpack 的支持5.
你可以找到官方弃用说明here
如果你想遍历块中的模块,你可以这样做:
compilation.chunks.forEach(chunk => {
compilation.chunkGraph.getChunkModules(chunk).forEach((module) => {
// module is available here
})
});
您可以在 source code. If you want to manipulate modules in chunk, probably it's better to use ModuleGraph class 中找到此 class 的其他有用方法。例如:
compilation.chunks.forEach(chunk => {
compilation.chunkGraph.getChunkModules(chunk).forEach((module) => {
const exportInfo = compilation.chunkGraph.moduleGraph.getExportInfo(module);
})
});
我遇到这个问题是因为我使用 compilation.hooks.optimizeChunks to iterate through all modules in the compilation. After some research, I found that I could use compilation.hooks.optimizeModules 来获得相同的结果。因此,我切换到后者并停止收到问题中提到的弃用警告。我会说这是一个比在块中迭代模块更好的解决方案,因为 webpack 似乎已经在内部这样做了。