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.
npm install event-hooks-webpack-plugin --save-dev
import EventHooksPlugin from 'event-hooks-webpack-plugin';
export default {
// ...
plugins: [
new EventHooksPlugin({
initialize: () => {
// ...
}
})
]
};
The plugin consumes an object with Webpack compiler event hook names (e.g. run
, compile
,
and done
) as keys and functions as values.
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(() => {
// ...
})
})
]
};