webpack - tapable 简记
记录 webpack 的 tapable 库的用法。
基本用法
- owner: 实例化一种 Hook 类,比如 SyncHook。
- client:插入事件回调
- onwer: 触发某事件,调用事件回调
1 | const { SyncHook } = require('tapable') |
核心设计
Hook.call()
是由 HookCodeFactory.create()
动态创建的,为了提高在触发 大量的事件回调 时的性能,通过动态生成 硬编码 的Function
,来达到 减少循环和遍历开销,编译优化,避免重复解析 的性能优化目的。