Webpack打包原理

143 阅读1分钟

webpack打包流程

  • 需要读到入口文件里面的内容。
  • 分析入口文件,递归的去读取模块所依赖的文件内容,生成AST语法树。
  • 根据AST语法树,生成浏览器能够运行的代码。

具体细节:

  • 获取主模块内容
  • 分析模块
    • 安装@babel/parser包(转AST)
  • 对模块内容进行处理
    • 安装@babel/traverse包(遍历AST收集依赖)
    • 安装@babel/core和@babel/preset-env包 (es6转ES5)
  • 递归所有模块
  • 生成最终代码

AST:抽象语法树

webpack、UglifyJs、lint等工具的核心都是通过ast抽象语法书实现的,实现对代码的检查、分析。底层是调用的js parser 来生成抽象语法树。