/nodemon-webpack-plugin

A webpack plugin that uses Nodemon to start and reload the server.

Primary LanguageJavaScriptMIT LicenseMIT

Nodemon Webpack Plugin

GitHub Workflow Status

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.

Installation

npm install nodemon-webpack-plugin --save-dev

Usage

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

Modes

Zero-config mode

new NodemonPlugin();

Will watch and restart the output file.

With config

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',
  },
});

For a full list of options, see Nodemon's type definitions (Settings interface).