treeShaking小节

56 阅读1分钟

为什么用

  1. 代码存在定义但是未使用的变量,函数等

如何配置

module.exports = {
  entry: "./src/index",
  mode: "production",
  devtool: false,
  optimization: {
    usedExports: true,
  },
};

基本原理

本质上是一种基于 ES Module 规范的 Dead Code Elimination 技术,它会在运行过程中静态分析模块之间的导入导出,确定 ESM 模块中哪些导出值未曾其他模块使用,并将其删除。 正因为是静态分析才能在编译时期就能确定哪些模块未被使用,如果是动态引入的,自然无法判断某个模块是不是真的被引入

源码

  1. 待补充