webpack运行机制

参考

  1. Webpack 4+,Webpack 的 CLI 部分,独立到 webpack-cli ,增强 Webpack 灵活性。
  2. Webpack CLI 的作用就是将 CLI 参数和 Webpack 配置文件中的配置整合,得到完整的配置对象。
  3. 将配置参数传给webpack执行,生成compiler
    1. new Compiler 生成compiler
    2. 注册plugins
  4. 执行compiler.run(),或者compiler.watch()
  5. run方法内部触发 beforeRunrun 两个钩子,且开始编译compile()
    1. compile内部创建一个 Compilation 对象(依赖资源合集),且触发make钩子
    2. make阶段,就是从入口文件开始,递归调用依赖,形成依赖关系树,其中每一个模块交由给loader处理,这里是用事件触发机制,Tapable库,触发make的监听回调
    3. 回调内执行, Compilation.addEntry()开始解析入口文件
    4. 将入口模块添加到模块依赖列表中;
    5. Compilation.buildModule()模块构建,其内部执行具体的 Loader,处理特殊资源加载;
    6. 构建完成后,通过 acorn库生成模块代码的 AST 语法树
    7. 根据语法树分析这个模块是否还有依赖的模块,如果有则继续循环 build 每个依赖;
    8. 所有依赖解析完成,build 阶段结束;
    9. 最后合并生成需要输出的 bundle.js 写入 dist 目录。

猜你喜欢

转载自blog.csdn.net/formylovetm/article/details/127259816