# webpack/tapable

Just a little module for plugins.

Repository: https://github.com/webpack/tapable
Canonical: https://ross.abutalabs.com/products/tapable
Language: JavaScript
License: MIT
License Family: permissive
Topics: hook, hooks, javascript, plugin, plugins
Last push: 2026-08-21T15:53:47+00:00

## Health v2 (maintenance only)
Score: 88/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 98, release rhythm 68, longevity 100
- inputs: {"age_days": 4972, "days_push": 12, "days_rel": 134, "gap_med": 40, "n_releases_24m": 6}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3862, forks 393 (observed 2026-08-28T04:08:27.553981+00:00)

## What it is
Tapable is a small JavaScript library providing Hook classes for creating pluggable extension points in applications, powering webpack's plugin architecture. It supports sync, async, waterfall, bail, and loop hook variants with efficient compiled dispatch.

## Use cases
- add a plugin system to a JavaScript library
- create hooks that other code can tap into
- run a series of async plugins in order
- build a webpack-like extensible architecture
- implement event hooks with waterfall value passing
- let users extend my class with callbacks

## When to choose
- you need fine-grained hook semantics like bail, waterfall, or loop
- you're building a plugin architecture in Node.js
- you want the battle-tested hook system used by webpack

## When to avoid
- you just need simple event emission (use EventEmitter)
- you need browser-side event handling with DOM integration
- you want a full pub/sub message bus

## Facets
- artifact type: library
- maturity: stable
- function: plugin-system, middleware
- domain: developer-tools, web-development
- platform: -
- tags: hooks, event-system, webpack, pubsub, javascript, nodejs

## Member repositories
- webpack/tapable (main) score 88

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:27.553981+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:25:53.542394+00:00, confidence not recorded.
  - readme: https://github.com/webpack/tapable (fetched 2026-08-28T04:08:27.553981+00:00, sha f3d66e6a3341)
  - registry_npm: https://registry.npmjs.org/tapable (fetched 2026-08-29T09:20:41.152784+00:00, sha 5122e9624776)
- Data as of 2026-08-30T08:39:29.467469+00:00.
