美文网首页
webpack4 编译过程

webpack4 编译过程

作者: kmbaby | 来源:发表于2018-03-29 17:50 被阅读0次

介绍webpack4的编译过程, 以及会触发的一些hooks。本文只是简单的展示webpack编译流水线,通过函数名调用,和hooks触发,可以了解大概流程。希望对编写webpack4插件的你带来帮助。 想了解具体实现的请移步看源码。

call 和 callAsync 的是事件触发
webpack4 的 hooks 继承自 webpack/tapable。 可以简单理解为一种订阅,分发的观察者模式。
webpack 内置插件会再各个编译流程中注册事件。 等待hook被call。
我们自己编写插件的话,可以在下面任意流程点注册事件,来改变编译的结果。

compiler.run() 为入口函数

Compiler 对象

  • run()
    • this.hooks.beforeRun.callAsync
    • this.hooks.run.callAsync
    • compile()
      • this.hooks.beforeCompile.callAsync
      • this.hooks.compile.call;
      • new compilation()
      • this.hooks.make.callAsync
      • compilation.finish()
      • compilation.seal
      • this.hooks.afterCompile.callAsync
      • onCompiled
        • this.hooks.shouldEmit.call
        • this.hooks.done.callAsync

Compilation 对象 (太多了。。省略很多 - -!)

  • this.hooks.finishModules.call
  • this.hooks.seal.call 编译的封存已经开始
  • this.hooks.optimize.call 优化编译
  • this.hooks.optimizeTree.callAsync 树的异步优化
  • this.hooks.afterOptimizeTree.call
  • this.applyModuleIds()
  • this.sortItemsWithModuleIds()
  • this.applyChunkIds()
  • this.sortItemsWithChunkIds()
  • this.createHash()
  • this.hooks.additionalAssets.callAsync
    • this.hooks.optimizeChunkAssets.callAsync
  • this.hooks.afterSeal.callAsync

相关文章

  • webpack4 编译过程

    介绍webpack4的编译过程, 以及会触发的一些hooks。本文只是简单的展示webpack编译流水线,通过函数...

  • webpack 4 笔记

    [toc] learn webpack4 webpack 用于编译 JavaScript 模块。 本质上,webp...

  • webpack4的API介绍

    说明 webpack4可以自定义编译过程通过各种接口,一些功能之间是有重复,例如在配置选项可以通过CLI,而其他的...

  • 发现•分享—2019-01-10

    工具 使用webpack4提升180%编译速度 RequireJS路径深入详解 Webpack 源码解析 文章 C...

  • 浅谈编译过程

    浅谈编译过程浅谈编译过程

  • webpack4 系列教程(六): 处理SCSS

    这节课讲解webpack4中处理scss。只需要在处理css的配置上增加编译scss的 LOADER 即可。了解更...

  • webpack4编译vue2 + element-ui项目

    在 webpack4 编译vue 2 项目的基础上引入 element-ui 需要调整以下文件及代码 安装资源管理...

  • 编译过程

    前言 计算机应用都依赖于计算机程序;除此之外,计算机应用还需要基础硬件去执行计算机程序,而基础硬件又是不能识别我们...

  • 编译过程

    1、预编译(1)宏定义指令,如 #define a b(2)条件编译指令,如#ifdef,#ifndef,#el...

  • 编译过程

    https://blog.csdn.net/haibosdu/article/details/77094833

网友评论

      本文标题:webpack4 编译过程

      本文链接:https://www.haomeiwen.com/subject/iqpmcftx.html