1

使用 Webpack 5,在一个条目文件中,我有多个动态导入设置,如下所示:import(/* webpackExports: ["moduleName"] */ 'package name');每个导入都是在不同的条件下完成的。可能在页面加载时,实际上应该调用大约 5 个导入中的一个。这些导入分布在多个不同的包中。

问题是由于某种原因,Webpack 将所有这些导入设置为一个更大的块,而不是像我期望的那样单独的块。

只是为了确保没有一些交叉依赖冲突或我尝试清除导入的模块以用于测试目的实际上没有任何东西。我也尝试过使用 webpackChunkName。没有任何效果。

为什么 webpack 会制作这些块而不是多个块?我怎样才能解决这个问题?

谢谢。

4

1 回答 1

0

这个问题与“状态”有关。条件加载并不意味着我们可以为同一个模块拥有多个状态。副作用和实时绑定的问题迫使 webpack(或任何加载器)将正在使用的模块的所有导出(有条件或无条件地)聚合到一个块中。

因此,动态导入模块的摇树摇晃是一个限制。

我在这里写了更多关于此的内容:https ://blog.hotstar.com/how-to-dynamically-import-esmodules-and-tree-shake-them-too-aa24ee4885f5

于 2021-08-26T15:33:44.130 回答