1. shell和配置文件合并, 产出最终的一个配置 2. 初始化complier对象 options hooks 3. 遍历插件进行调用 4. 执行complier对象的run方法开始执行编译 5. 根据配置项里面的entry找到所有的入口 6. 从入口出发,调用所有配置的loader规则,对模块进行编译 7. 找到此模块依赖的模块,再递归本步骤找到依赖的模块进行编译 8. 把所有的模块编译完成后,再根据模块之间的关系,组装成一个个包含多个模块的依赖的chunk 9. 把各个代码块chunk转换成一个个的文件,添加到asset列表当中去 10.确定输出的内容之后,根据配置的输出路径和文件名,把相关的文件内容写入到文件里面去