Webpack 4 SplitChunksPlugin - 动态导入中的常见依赖项

Posted

技术标签:

【中文标题】Webpack 4 SplitChunksPlugin - 动态导入中的常见依赖项【英文标题】:Webpack 4 SplitChunksPlugin - Common dependencies in Dynamic Imports 【发布时间】:2019-06-03 06:53:27 【问题描述】:

根据文档,我正在使用带有 Webpack 的动态导入: https://webpack.js.org/guides/code-splitting/#dynamic-imports

非常基本的示例(不是实际代码):

// main.js

import('./moduleA).then((moduleA) => 
  moduleA.init();
);
import('./moduleB).then((moduleB) => 
  moduleB.init();
);

// 模块A.js

import utility from './utility';
export function init() ...

// 模块B.js

import utility from './utility';
export function init() ...

问题是 utility 模块包含在 moduleA 和 moduleB 块中,所以它是重复的。 我找不到让 Webpack 像标准导入那样将这些类型的依赖项拆分为单独的公共块的方法。 SplitChunksPlugin 似乎没有捆绑 moduleAmoduleB 之间的任何常见依赖项,因为它们是动态导入的。 请问有什么想法吗?

【问题讨论】:

【参考方案1】:

好的,所以我错过了文档中的几行 - 或者只是误解了它。 Webpack 足够聪明,可以知道这些常见的依赖项是否真的需要拆分成它们自己的块。如果公共依赖项超过某个文件大小,那么它将被拆分,如果文件足够小,那么 Webpack 认为将其捆绑到每个模块中会更高效。这还基于其他条件,因此如果您发现自己处于此位置,请查看文档。

【讨论】:

以上是关于Webpack 4 SplitChunksPlugin - 动态导入中的常见依赖项的主要内容,如果未能解决你的问题,请参考以下文章

webpack 4 + mockjs

使用 @ngtools/webpack 在 Angular 11 + Webpack 4 中实现 AOT

React/Webpack - 从 webpack 1 迁移到 4,配置对象无效

冲突的对等依赖关系:webpack@4.46.0 npm ERR!节点模块/webpack

从 Webpack 3 迁移到 Webpack 4

Webpack 4 学习04(配置webpack-dev-server)