剧透下我们的插件 empty-webpack-build-detail-plugin 友好的展示编译输出 ,如果您觉得好用 ,可以给个star
Webpack
本质上是一种串行事件流的机制,它的工作流程就是将各个插件串联起来,实现这一切的核心就是Tapable
,
webpack中最核心的负责编译的Compiler
和负责创建bundle的Compilation
都是Tapable的实例
compiler 对象是 webpack 的编译器对象,webpack 的核心就是编译器,
compiler 对象会在启动 webpack 的时候被一次性的初始化,
compiler 对象中包含了所有 webpack 可自定义操作的配置,
例如 loader 的配置,plugin 的配置,entry 的配置等各种原始 webpack 配置等,
在 webpack 插件中的自定义子编译流程中,我们肯定会用到 compiler 对象中的相关配置信息,
我们相当于可以通过 compiler 对象拿到 webpack 的主环境所有的信息。
compilation 对象负责生成编译资源
compilation 实例继承于 compiler,
compilation 对象代表了一次单一的版本 webpack 构建和生成编译资源的过程。
当运行 webpack 开发环境中间件时,每当检测到一个文件变化,一次新的编译将被创建,
从而生成一组新的编译资源以及新的 compilation 对象。
一个 compilation 对象包含了 当前的模块资源、编译生成资源、变化的文件、以及 被跟踪依赖的状态信息。
编译对象也提供了很多关键点回调供插件做自定义处理时选择使用。
简单