Webpack的构建流程

Webpack 的构建流程主要包括以下步骤:

初始化 :启动构建,读取和合并配置参数,加载 Plugin,实例化 Compiler。
编译 :从 Entry 出发,针对每个 Module 串行调用对应的 Loader 去翻译文件的内容,再找到该 Module 依赖的 Module,递归地进行编译处理。
输出 :对编译后的 Module 进行深度优化,如模块合并、拆分等,然后将这些信息写入到 Chunk 中,再把 Chunk 转换成文件,输出到文件系统中。

以下是这个过程的伪代码:

javascript 复制代码
// 初始化
const options = readAndMergeConfigOptions();
const compiler = new Compiler(options);

// 加载插件
for (const plugin of options.plugins) {
  plugin.apply(compiler);
}

// 编译
const context = { compiler, options };
for (const entry of options.entry) {
  compileModule(context, entry);
}

// 输出
const chunks = generateChunks(context);
for (const chunk of chunks) {
  emitFile(context, chunk);
}

这个过程中,Webpack 会广播出许多事件,插件可以监听这些事件,在适当的时机添加自己的逻辑。

相关推荐
kyriewen20 分钟前
你等的Babel编译,够喝三杯咖啡了——用Rust重写的SWC,只需眨个眼
前端·javascript·rust
搬砖码29 分钟前
同源多标签页通信 4 种方案,从入门到生产环境
前端·面试
张元清33 分钟前
SSR 状态管理陷阱:defineStore vs defineContextStore
前端·javascript·面试
donecoding1 小时前
nrm、corepack、npm registry 三者的爱恨情仇
前端·node.js·前端工程化
小gaigagi1 小时前
从吉客云·奇门到MySQL的完整数据流
前端
悟空瞎说1 小时前
用 Rust 开发 QML 桌面应用(第二篇)—— 日志系统完整搭建
前端
LIO1 小时前
前端开发之Git 代码仓库管理详细教程
前端·git
软件开发技术深度爱好者1 小时前
前端网页开发三剑客快速入门
前端
openKaka_1 小时前
为什么 React 18 之后使用 createRoot,而不是 ReactDOM.render
前端·javascript·react.js
WindrunnerMax1 小时前
基于 Markdown-It 的无序列表折叠插件
前端·javascript·github