《玩转webpack》学习笔记  第六章61节   Tapable hooks插件 day01

82 阅读1分钟

Webpack中的核心compiler

Tapable是什么内容

Webpack是一种基于事件流的编程范例,一系列的插件运行

核心对象conpiler继承了Tapable

Tapable是一个类似Nodejs的一个EventEmitter的库,主要是控制钩子函数的发布与订阅,控制着webpack的插件系统。

Tapable库暴露了很多Hook(钩子)类,为插件提供挂载的钩子

const {

SyncHook // 同步钩子

syncBailHook  // 同步熔断的

syncWaterfallHook  // 同步流水钩子

SyncLoopHook  // 同步循环钩子

AsyncParallelHook  // 异步并发钩子

AsyncParallelBailHook  // 异步并发熔断钩子

AsyncSeriesHook  //  异步串行钩子

AsyncSeriesBailHook  // 异步串行熔断钩子

AsyncSeriesWaterfallHook  // 异步串行流水钩子

} = require(‘tapable’)

 

typefunction
Hook所有钩子的前缀
Waterfall同步方法,但是它会传值给下一个函数
Bail熔断:当函数有任何返回值,就会在当前执行函数停止
Loop监听函数返回true表示继续循环,返回undefined表示结束循环
Sync同步
asyncSeries异步串行
AsyncParallel异步并行