Webpack中的核心compiler
Tapable是什么内容
Webpack是一种基于事件流的编程范例,一系列的插件运行
核心对象conpiler继承了Tapable
Tapable是一个类似Nodejs的一个EventEmitter的库,主要是控制钩子函数的发布与订阅,控制着webpack的插件系统。
Tapable库暴露了很多Hook(钩子)类,为插件提供挂载的钩子
const {
SyncHook // 同步钩子
syncBailHook // 同步熔断的
syncWaterfallHook // 同步流水钩子
SyncLoopHook // 同步循环钩子
AsyncParallelHook // 异步并发钩子
AsyncParallelBailHook // 异步并发熔断钩子
AsyncSeriesHook // 异步串行钩子
AsyncSeriesBailHook // 异步串行熔断钩子
AsyncSeriesWaterfallHook // 异步串行流水钩子
} = require(‘tapable’)
| type | function |
|---|---|
| Hook | 所有钩子的前缀 |
| Waterfall | 同步方法,但是它会传值给下一个函数 |
| Bail | 熔断:当函数有任何返回值,就会在当前执行函数停止 |
| Loop | 监听函数返回true表示继续循环,返回undefined表示结束循环 |
| Sync | 同步 |
| asyncSeries | 异步串行 |
| AsyncParallel | 异步并行 |