为什么用
- 代码存在定义但是未使用的变量,函数等
如何配置
module.exports = {
entry: "./src/index",
mode: "production",
devtool: false,
optimization: {
usedExports: true,
},
};
基本原理
本质上是一种基于 ES Module 规范的 Dead Code Elimination 技术,它会在运行过程中静态分析模块之间的导入导出,确定 ESM 模块中哪些导出值未曾其他模块使用,并将其删除。 正因为是静态分析才能在编译时期就能确定哪些模块未被使用,如果是动态引入的,自然无法判断某个模块是不是真的被引入
源码
- 待补充