微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何修复Chunk.modulesIterable的弃用警告?

如何解决如何修复Chunk.modulesIterable的弃用警告?

我是external-svg-sprite-loader的维护者,并且注意到与webpack 5一起使用时,出现以下警告:

[DEP_WEBPACK_CHUNK_MODULES_IteraBLE] DeprecationWarning: Chunk.modulesIterable: Use new ChunkGraph API

构建通过,但我希望能够修复此弃用警告。但是,我找不到有关modulesIterable或ChunkGraph API的任何文档。我应该在哪里寻找它?该问题的潜在解决方案是什么?

解决方法

如果要遍历块中的模块,可以这样做:

compilation.chunks.forEach(chunk => {
  compilation.chunkGraph.getChunkModules(chunk).forEach((module) => {
    // module is available here
  })
});

您可以在其source code中找到此类的其他有用方法。如果要分块地操作模块,则最好使用ModuleGraph类。例如:

compilation.chunks.forEach(chunk => {
  compilation.chunkGraph.getChunkModules(chunk).forEach((module) => {
    const exportInfo = compilation.chunkGraph.moduleGraph.getExportInfo(module);
  })
});
,

external-svg-sprite-loader使用的Chunk.modulesIterable (ref)已贬值并由ChunkGraph

取代

该软件包具有webpack ^ 4.1.0(ref)的对等依赖性,因此您可以将Webpack降级为4. *以消除警告,也可以要求软件包维护者添加对Webpack 5的支持。

您可以找到官方折旧说明here

,

我遇到了这个问题,因为我正在使用compilation.hooks.optimizeChunks遍历编译中的所有模块。经过研究,我发现我可以使用compilation.hooks.optimizeModules来达到相同的结果。因此,我切换到后者,并停止收到问题中提到的弃用警告。我要说的是,这比遍历大块的模块是更好的解决方案,因为webpack似乎已经在内部进行了此操作。

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