This plugin allows you to run any shell commands before or after webpack builds. This will work for both webpack and webpack-dev-server.
Goes great with running cron jobs, reporting tools, or tests such as selenium, protractor, phantom, ect.
npm install --save-dev webpack-hook-plugin
In webpack.config.js:
importWebpackHookPluginfrom'webpack-hook-plugin';module.exports={//...//...plugins: [newWebpackHookPlugin({onBuildStart:['echo "Webpack Start"'],onBuildEnd:['echo "Webpack End"']})],//...}Insert into your webpack.config.js:
importWebpackHookPluginfrom'webpack-hook-plugin';constpath=require('path');varplugins=[];plugins.push(newWebpackHookPlugin({onBuildStart: ['echo "Starting"'],onBuildEnd: ['python script.py && node script.js']}));varconfig={entry: {app: path.resolve(__dirname,'src/app.js')},output: {path: path.resolve(__dirname,'dist'),// regular webpackfilename: 'bundle.js'},devServer: {contentBase: path.resolve(__dirname,'src')// dev server},plugins: plugins,module: {loaders: [{test: /\.js$/,loaders: 'babel'},{test: /\.scss$/,loader: 'style!css!scss?'},{test: /\.html$/,loader: 'html-loader'}]}}module.exports=config;Once the build finishes, a child process is spawned firing both a python and node script.
onBuildStart: array of scripts to execute on the initial build. Default: [ ]onBuildEnd: array of scripts to execute after files are emitted at the end of the compilation. Default: [ ]onBuildExit: array of scripts to execute after webpack's process is complete. Note: this event also fires inwebpack --watchwhen webpack has finished updating the bundle.Default: [ ]onCompile: array of scripts to execute on every compile. Default: [ ]dev: switch for development environments. This causes scripts to execute once. Useful for running HMR on webpack-dev-server or webpack watch mode. Default: truesafe: switches script execution process from spawn to exec. If running into problems with spawn, turn this setting on. Default: false
If this plugin is helpful, please click star to support it.