Webpack学习系列(十二)/总结

286 阅读1分钟

在系统学完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. 构建文件输出


修改后的思维导图