在系统学完Webpack之后对官网的图片及整个打包过程有了更加深刻的认识

webpack打包过程
1. yargs工具获取命令行options,将之与配置文件的配置合并 (ps:合并的时候命令行选项的会覆盖配置文件)
2. 将 options 传入webpack函数中;new compiler;处理option;注册插;开始执行构建
(源码:\node_modules\webpack\lib\webpack.js)

2.1 先看一下compiler类内部:this.hooks属性含有大量的内置hooks

2.2 跳转到run方法
3. 开始构建 this.compile(onCompiled)

4. make钩子做了什么
addEntry方法内部:

4.1 创建模块:_addModuleChain的作用是将输入的文件转化为一个module,有NormalModule , MultiModule , ContextModule , DelegatedModule 等),
在create完module之后会将其存储,然后开始buildModule。
_addModuleChain方法内部:再单个模块构建完成后,根据依赖的属性继续构建模块。

buildModule方法

这里以normalModule内部的build的方法为例:
4.2 文件处理,依赖分析等
build方法内容:定义this._ast = null 调用doBuild方法,doBuild方法会调用类型文件对应的loader,如JS文件调用babel-loader将js变成成ast 进行依赖分析,并且将es6转化为es5

dobuild方法内容:loader处理文件,依赖分析
5. seal优化

6. 构建文件输出

修改后的思维导图
