nodemon-webpack-plugin
Version:
A webpack plugin that starts and reloads a server using Nodemon.
102 lines (74 loc) • 2.58 kB
Markdown
# Nodemon Webpack Plugin
<p align="center">
<img width="100%" src="https://user-images.githubusercontent.com/880132/73990098-0a6ef580-4940-11ea-8df7-c93dda7edb4d.png" />
</p>
<p align="center">
<a aria-label="Build" href="https://github.com/Izhaki/nodemon-webpack-plugin/actions?query=workflow%3ABuild">
<img alt="GitHub Workflow Status" src="https://img.shields.io/github/workflow/status/Izhaki/nodemon-webpack-plugin/Build">
</a>
<a aria-label="NPM version" href="https://npmjs.org/package/nodemon-webpack-plugin">
<img alt="" src="https://img.shields.io/npm/v/nodemon-webpack-plugin?style=flat-square">
</a>
<a aria-label="Downloads" href="https://www.npmjs.com/package/nodemon-webpack-plugin">
<img alt="" src="https://img.shields.io/npm/dt/nodemon-webpack-plugin?style=flat-square">
</a>
</p>
Uses [Nodemon](https://nodemon.io/) 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
```bash
npm install nodemon-webpack-plugin --save-dev
```
## Usage
```javascript
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:
```shell
$ webpack --watch
```
## Modes
### Zero-config mode
```javascript
new NodemonPlugin();
```
Will watch and restart the output file.
### With config
Provide a [Nodemon config object](https://github.com/remy/nodemon#config-files), like so:
```javascript
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](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/nodemon/index.d.ts) (`Settings` interface).