简单说
初始化,启动构建,读取合并配置参数,加载Plugin 实例化Compiler
编译:从Entry 出发,针对每个Module串行调用对应Loader去翻译文件的内容
再找到该Module依赖的Module,递归进行编译处理
- 输出:将编译后的Module组合成Chunk,将Chunk转换成文件,输出到文件系统中
Webpack的运行流程是一个串行的过程,从启动到结束依次执行以下流程
初始化参数
从配置文件和shell中读取合并参数,得出最终参数- 开始编译: 用上一步得到参数初始化Compiler对象,加载所有配置的插件,执行对象的run方法
- 确定入口: 根据entry找到 入口文件
- 编译模块: 从入口触发,调用loader对模块进行翻译,再找到模块依赖的模块,
- 完成模块编译: 翻译所有模块,得到依赖关系和最终内容
- 输出资源 : 根据入口和模块之间的依赖关系,组装成chunk,再把chunk转换成一个单独文件加入到输出列表
- 输出完成,确定输出内容,根据配置确定路径文件名,写入到文件系统