webpack插件

webpack 的插件机制

webpack 本质上是一种事件流的机制,它的工作流程就是将各个插件串联起来,而实现这一切的核心就是 tapable,tapable 有点类似于 nodejs 里events 库,核心原理也是依赖于发布订阅模式
webpack 当中负责编译的 compiler 和 负责创建 bundle 的 compilation 都是 tapable 的实例通过事件的注册和监听,触发 webpack 生合周期中的函数方法

  1. 创建:webpack 在其内部对象上创建的各种钩子
  2. 注册:插件将自己的方法注册到对应的钩子上,交给 webpack
  3. 调用:webpack 编译过程中,会适时地触发相应的钩子,因此也就触发了插件的方法