- 初始化参数,把webpack.config.js 和 shell 命令参数合并
- 处理webpack配置中的 plugin,执行 new 插件实例化语句,初始化 Compiler 对象
- 找到 entry 入口
- 进入 resolve 阶段,解析模块的 绝对路径,找出 loader
- 执行loader,解析文件
- 使用 acorn(ECMASCRIPT 解析器)将解析好的文件转为 AST 语法树
- 递归解析依赖模块
- 对处理好的 module 进行优化,增加 id,做缓存处理
- 生成 chunk,决定一个 chunk 包含哪些 module
- 生成最终的bundle
- 将打包好的文件写入到 配置文件中指定的目录