Uses Nodemon to watch and restart your module's output file (presumably a server), but only when webpack is in watch mode (ie, --watch
).
Saves the need for installing, configuring and running Nodemon as a separate process.
npm install nodemon-webpack-plugin --save-dev
const NodemonPlugin = require('nodemon-webpack-plugin'); // Ding
module.exports = {
entry: './src/server.js',
output: {
path: path.resolve('./dist'),
filename: 'server.js',
},
plugins: [
new NodemonPlugin(), // Dong
],
};
Then:
$ webpack --watch
new NodemonPlugin();
Will watch and restart the output file.
Provide a Nodemon config object, like so:
new NodemonPlugin({
// If using more than one entry, you can specify
// which output file will be restarted.
script: './dist/server.js',
// What to watch.
watch: path.resolve('./dist'),
// Arguments to pass to the script being watched.
args: ['demo'],
// Node arguments.
nodeArgs: ['--debug=9222'],
// Files to ignore.
ignore: ['*.js.map'],
// Extensions to watch.
ext: 'js,njk,json',
// Unlike the cli option, delay here is in milliseconds (also note that it's a string).
// Here's 1 second delay:
delay: '1000',
// Detailed log.
verbose: true,
// Environment variables to pass to the script to be restarted
env: {
NODE_ENV: 'development',
},
},
// Additional Plugin Options
{
// Hide "[nodemon-webpack-plugin]: Compilation error."
hideCompilationErrorMessage: true,
});
For a full list of options, see Nodemon's type definitions (Settings
interface).