玩转 webpack 学习笔记
流程相关:
监听相关:
Compiler 调用 Compilation 生命周期方法
上一节到了run这里,下面看一下 compile

这里就会执行到 hooks.make 了

查看哪些监听了 make
grep "hooks.make" -rn ./node_modules/webpack

找到 my-project\node_modules\webpack\lib\SingleEntryPlugin.js 40 行,执行 addEntry 方法 make 构建阶段正式开始

模块构建好就会触发 my-project\node_modules\webpack\lib\Compilation.js 里的 finish 方法,这里的 module 就是处理之后的源码

const NormalModuleFactory = require("./NormalModuleFactory");
const ContextModuleFactory = require("./ContextModuleFactory");
NormalModuleFactory :直接导出摸个函数的
ContextModuleFactory:有路径的



Build:
创建完一个 NormalModule 之后的构建,找到开始构建某个模块的 build-module


接下来看一下 module.build 做了什么
const { getContext, runLoaders } = require("loader-runner");

执行完 doBuild 之后就会解析

my-project\node_modules\webpack\lib\Parser.js 使用了 acorn,目的是把代码里的 require 依赖添加到模块依赖列表里面去。

最后进入 seal 阶段。
模块相关:
资源生成相关:
优化和 seal相关: