核心概念

Tapable

一个基于发布订阅的事件工具流,Compiler和Compilation对象都继承与Tapable

Compiler

webpack编译贯穿始终的核心对象,在编译初始化阶段被创建的全局单例,包含完整配置信息、loaders、plugins以及各种工具方法

Compilation

代表一次webpack构建和生成编译资源的过程,在watch模式下每一次文件变更触发的重新编译都会生成新的Compilation对象,包含了当前编译的模块module,编译生成的资源,变化的文件,依赖的状态等

构建流程图
image.png
重要补充:淘系前端团队-细说 webpack 之流程篇

https://fed.taobao.org/blog/2016/09/10/webpack-flow/