Skip to content

Rollup工作原理

  1. 解析入口文件: 使用@rollup/plugin-babel插件解析代码,生成AST。通过导入导出语句构建模块依赖图谱。
  2. 递归解析依赖: 遍历AST,找到所有依赖的模块,递归解析依赖,构建完整的模块依赖图谱。
  3. Tree shaking: 去除无用的代码,只保留被使用的代码。
  4. 模块合并: 根据模块依赖图谱,将多个模块合并成一个或多个输出文件。
  5. 生成输出文件: 最后将合并后的代码输出到指定的文件中。

Rollup是如何确定每个module的exports是否被使用的?/ Tree Shaking原理?

  1. 静态分析:Rollup 会分析代码以找出所有的导入和导出声明。
  2. 标记为使用:当 Rollup 发现一个导出被内部引用或者被模块的其他部分引用时,它会标记该导出为“使用中”。
  3. 消除未使用的代码:如果一个导出或导入被标记为未使用,Rollup 可以选择在打包结果中排除它。