This is a webpack plugin for running arbitrary shell scripts when webpack compiler hooks are triggered.
Install the plugin with npm:
$ npm install --save-dev hook-shell-script-webpack-plugin
$ yarn add --dev hook-shell-script-webpack-plugin
// webpack.config.js
const webpack = require('webpack');
const HookShellScriptPlugin = require('hook-shell-script-webpack-plugin');
module.exports = {
// ...
plugins: [
new HookShellScriptPlugin({
// run a single command
afterEmit: ['npx tsc --emitDeclarationOnly'],
// run multiple commands in parallel
done: [
// either as a string
'command1 with args',
// or as a command with args
{command: 'command2', args: ['with', 'args']}
],
// run a command based on the hook arguments
assetEmitted: [
// you can return a string
(name, info) => `node ${info.outputPath}`
// or an object with command and args
(name, info) => ({command: 'node', args: [info.outputPath]})
],
// return a command and argrs object
})
]
};
Big thanks to webpack-hook-plugin for the inspiration.
The MIT License
Copyright ©️ 2021 Drew Loomer, https://drewloomer.com