tapable 文档

最近在学习webpack源码,发现webpack库内部使用了一个tapable流程和管理工具,来实现了webpack的插件机制

内部支持9种类型的执行hook

const {
    SyncHook,
    SyncBailHook,
    SyncWaterfallHook,
    SyncLoopHook,
    AsyncParallelHook,
    AsyncParallelBailHook,
    AsyncSeriesHook,
    AsyncSeriesBailHook,
    AsyncSeriesWaterfallHook 
 } = require("tapable");

hook 类型

  • Basic hook: 这种类型的hook,当被tapped的时候,只是简单的调用每个函数

  • water fall:线性的执行每一个函数,从一个函数的返回值最为下一个执行函数的参数

  • Bail hook: 准许提前退出,当被执行的函数,返回任何值,bail hook 将退出,不在执行余下的钩子

  • loop hook:

  • sync 同步执行

  • asyncseries 异步串行 可以使用callback 或者 promise 使用 myhook.tap() myhook.tapAsync() myhook,tapPromise() 线性执行异步函数

  • asyncparallel 异步并行 一样可以被使用同步 callback promise 触发,他们并行执行每个方法

image.png

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容