hook-webpack-plugin

1.1.0 • Public • Published

Coverage Status CircleCI


Hook - webpack plugin

Create custom plugins from your config file and avoid loosing time finding or maintaining a simple plugin.

Intercept any plugin and customize it to match your preferences.

Group your hooks to create a new plugin and modify it when you want.

Contents

Installation

NPM

Via npm:

npm i hook-webpack-plugin

Via yarn:

yarn add hook-webpack-plugin --dev

Usage

Add something like the following to your config file, in the plugin section:

// webpack.config.js
const HookWebpackPlugin = require('hook-webpack-plugin');

// ...
plugins: [
    // ...
    new HookWebpackPlugin(hookName, hookFn, options)
    // ...
]
// ...

Then, replace the following values:

hookName: string
The name of a compiler/compilation hook. Something like "emit", "done", ...
hookFn: function
The listener for the hook.
options: objectopt
Property Default Description
sync false [async when possible] If a truthy value is given use `tap`, otherwise use `tapAsync`.
pluginName HookWebpackPlugin Value to use in tap/tapAsync methods.

Examples

Creating a plugin

// webpack.config.js

plugins: [
    new HookWebpackPlugin(hookName, compilerHook (...args) {
        // Do something awesome...
    })
]

Registering a plugin

Name your plugin and group multiple hooks together, internally.

// webpack.config.js

plugins: [
    new HookWebpackPlugin(hookName, compilerHook, {pluginName: 'MyAwesomePlugin'}),
    new HookWebpackPlugin(anotherHookName, anotherCompilerHook, {pluginName: 'MyAwesomePlugin'})
]

Intercepting another plugin

Set the pluginName option to the internal name of the plugin you want to intercept.

// webpack.config.js

plugins: [
    new ThirdPartyPlugin(options),
    new HookWebpackPlugin(hookName, () => {
        // Your code...
    }, {'pluginName': 'ThirdPartyPlugin'})
]

More info

Check the docs for more details.

License

hook-webpack-plugin is MIT licensed.

Readme

Keywords

Package Sidebar

Install

npm i hook-webpack-plugin

Weekly Downloads

3

Version

1.1.0

License

MIT

Unpacked Size

9.55 kB

Total Files

4

Last publish

Collaborators

  • alexispuga