流程概括

  1. 初始化参数 从配置文件和 Shell 语句中读取与合并参数,得出最终的参数
  2. 开始编译:用上 步得到的参数初始 Co er 对象,加载所有配置的插件,通
  3. 过执行对象的 run 方法开始执行编译
  4. 确定入口 根据配置中的 ntry 找出所有入口文件
  5. 编译模块:从入口文件出发,调用所有配置的 Loader 对模块进行翻译,再找出
  6. 模块依赖的模块,再递归本步骤直到所有入口依赖的文件都经过了本步骤的处理
  7. 完成模块编译 在经过第 步使用 Loader 翻译完所有模块后, 得到了每个模块被
  8. 翻译后的最终内容及它们之间的依赖关系。
  9. 输出资源:根据入口和模块之间的依赖关系,组装成 个个包含多个模块的 Chunk,
  10. 再将每个 Chunk 转换成 个单独的文件加入输出列表中,这是可以修改输出内容
  11. 的最后机会
  12. 输出完成:在确定好输出内容后,根据配置确定输出的路径和文件名,将文件的内
  13. 容写入文件系统中。

    流程细节

  14. 初始化:启动构建,读取与合并配置参数,加载 Plugin ,实例化 Compiler

  15. 编译:从 Entry 发出,针对每个 Module 串行调用对应的 Loader 去翻译文件的内容,
  16. 再找到该 Module 依赖的 Module ,递归地进行编译处理
  17. 输出:将编译后的 Module 组合成 Chunk ,将 Chunk 转换成文件,输出到文件系统中