从 webpack4 源码解析之 compiler.run 做了什么
2024-02-06 08:54:59
在这个 webpack4 的源码分析系列,我们在上一篇文章中分析了如何配置 webpack4。我们了解到 webpack4 的核心对象是 Compiler,它负责整个打包过程。在上篇文章的末尾,我们提到了 Compiler.run 方法是 webpack 打包的入口。那么今天我们就来看看这个 Compiler.run 方法做了些什么。
1. 准备工作
在调用 Compiler.run 方法之前,我们需要做一些准备工作。首先,我们需要创建一个 Compiler 对象。我们可以通过以下方式创建 Compiler 对象:
const compiler = new Compiler(config);
其中,config 是 webpack 的配置对象。
接下来,我们需要创建一个 Compilation 对象。Compilation 对象是 webpack 打包过程中的一系列操作的集合。我们可以通过以下方式创建 Compilation 对象:
const compilation = new Compilation(compiler);
2. 调用 Compiler.run 方法
在准备工作完成后,就可以调用 Compiler.run 方法了。Compiler.run 方法接收一个回调函数作为参数,这个回调函数将在 webpack 打包完成后执行。
compiler.run((err, stats) => {
// webpack 打包完成后执行的回调函数
});
3. Compiler.run 方法做了些什么
在调用 Compiler.run 方法后,webpack 将会执行一系列的打包操作。这些操作主要分为两个部分:
3.1 HTML 模板编译
webpack 会首先编译 HTML 模板。HTML 模板是指 webpack 入口文件中引用的 HTML 文件。webpack 会将 HTML 模板中的各种资源(例如 CSS、JS、图片等)进行解析,并将这些资源打包到一起。
3.2 入口文件分析
webpack 会接着分析入口文件。入口文件是指 webpack 入口配置中指定的 JavaScript 文件。webpack 会将入口文件中的代码进行解析,并将代码中的各种依赖(例如模块、函数等)进行分析。
4. 打包完成
在 HTML 模板编译和入口文件分析完成后,webpack 就完成了打包过程。此时,webpack 会执行 Compiler.run 方法中传入的回调函数。
总结
在本文中,我们分析了 webpack4 的 Compiler.run 方法做了些什么。我们了解到 webpack 打包的核心流程包括 HTML 模板编译和入口文件分析。