https://github.com/webpack/webpack/blob/main/lib/Compiler.js
这里简单分析一下,主要就是执行run相关生命周期,以及编译 。并且编译完成后传入回调函数onCompiled
const run = () => {this.hooks.beforeRun.callAsync(this, err => {if (err) return finalCallback(err);this.hooks.run.callAsync(this, err => {if (err) return finalCallback(err);this.readRecords(err => {if (err) return finalCallback(err);this.compile(onCompiled);});});});};
整体逻辑不是很复杂,我们主要可以感受到webpack启动后对hook的一些使用方式 。整体的逻辑差不多都是一样的 。是不是很简单 。
总结
- 想了解一个框架,一定要找到入口函数,一点一点向前探索 。
- tapable 是个好东西,
- 关于webpack生命周期,有疑问的时候,除了看文档意外,还可以结合源码去理解,去感受