简单说

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

    • 编译:从Entry 出发,针对每个Module串行调用对应Loader去翻译文件的内容

    再找到该Module依赖的Module,递归进行编译处理

    • 输出:将编译后的Module组合成Chunk,将Chunk转换成文件,输出到文件系统中

    Webpack的运行流程是一个串行的过程,从启动到结束依次执行以下流程

    1. 初始化参数 从配置文件和shell中读取合并参数,得出最终参数
    2. 开始编译: 用上一步得到参数初始化Compiler对象,加载所有配置的插件,执行对象的run方法
    3. 确定入口: 根据entry找到 入口文件
    4. 编译模块: 从入口触发,调用loader对模块进行翻译,再找到模块依赖的模块,
    5. 完成模块编译: 翻译所有模块,得到依赖关系和最终内容
    6. 输出资源 : 根据入口和模块之间的依赖关系,组装成chunk,再把chunk转换成一个单独文件加入到输出列表
    7. 输出完成,确定输出内容,根据配置确定路径文件名,写入到文件系统