概览
- 初始化参数
- 从配置文件和shell命令中 读取、合并 参数
- 开始编译
- 使用配置参数初始化 compiler 对象
- 挂载插件
- 依据配置文件,找到 entry 入口模块
- 编译模块
- 配置文件中的 Loader,从 entry 开始编译所有模块
- 找到所有以来文件/模块
- 完成编译
- 产出编译的数据(对象、数组、json ……)
- 输出资源
- 组装 chunk
- 将 chunk 转换为文件添加至输出列表
- 写入磁盘
- 确定输出内容
- 路径 + 写入 + 缓存
流程
-
入口调试
webpack.congig.js -
初始化
webpack.js -
合并配置参数
webpack.js -
插件挂载
-
tapable - 发布订阅
- webpack 内置,无需单独安装
- webpack 内置,无需单独安装
-
打包入口处理
-
loader
-
入口绝对路径
-
统一路径分割符
-
loader 执行
-
转化为 ast
npm install
@babel/parser // 转化为 AST 抽象语法树
@babel/traverse // 遍历 AST
babel-types // 修改 AST
@babel/generator // 修改后的 AST 再转化为可运行的代码