Skip to content

cascornelissen/event-hooks-webpack-plugin

Repository files navigation

Event Hooks Webpack Plugin

npm npm license

This Webpack plugin is similar to webpack-shell-plugin but it allows executing arbitrary code instead of commands on any compiler hook that is made available by Webpack.

Installation

npm install event-hooks-webpack-plugin --save-dev

Usage

import EventHooksPlugin from 'event-hooks-webpack-plugin';

export default {
    // ...
    plugins: [
        new EventHooksPlugin({
            initialize: () => {
                // ...
            }
        })
    ]
};

Options

The plugin consumes an object with Webpack compiler event hook names (e.g. run, compile, and done) as keys and functions as values.

Tapable

Webpack's compiler uses Tapable which supports different classes of hooks. This plugin supports synchronous, promise-based, and callback-based hooks through the exported tap, tapPromise and tapAsync methods. By default, the plugin uses tap.

import EventHooksPlugin, { tapPromise, tapAsync } from 'event-hooks-webpack-plugin';

export default {
    // ...
    plugins: [
        new EventHooksPlugin({
            emit: tapAsync(() => {
                // ...
            }),
            run: tapPromise(() => {
                // ...
            })
        })
    ]
};

License

This project is licensed under the MIT license.