基于ES Module规范的DCE(Dead Code Elimination),在运行过程中静态分析模块之间的导入导出
import module from "./module.js"
实现原理
- 标记:收集模块导出变量并记录到模块依赖关系图ModuleGraph中
- 删除(Terser):遍历ModuleGraph标记模块导出变量有没有被使用
- 输出:若变量没有被其他模块使用则删除对应的导出语句
标记功能需要配置 optimization.usedExports = true开启