Skip to content
Automatically start your server once Webpack's build completes.
Branch: master
Clone or download
Latest commit a46cd8c Mar 6, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
src prettier Mar 6, 2018
test signal: make optional Mar 6, 2018
.gitignore Initial release Apr 11, 2016
.nvmrc Build: support from Node v6 onwards Mar 6, 2018
.travis.yml Initial release Apr 11, 2016
LICENSE Initial commit Apr 11, 2016
package-lock.json npm Mar 6, 2018


Automatically start your server once Webpack's build completes.

travis build version downloads MIT License


$ npm install --save-dev start-server-webpack-plugin


In webpack.config.server.babel.js:

import StartServerPlugin from "start-server-webpack-plugin";

export default {
  // This script will be ran after building
  entry: {
    server: ...
  plugins: [
    // Only use this in DEVELOPMENT
    new StartServerPlugin({
      name: 'server.js',
      nodeArgs: ['--inspect'], // allow debugging
      args: ['scriptArgument1', 'scriptArgument2'], // pass args to script
      signal: false | true | 'SIGUSR2', // signal to send for HMR (defaults to `false`, uses 'SIGUSR2' if `true`)
      keyboard: true | false, // Allow typing 'rs' to restart the server. default: only if NODE_ENV is 'development'

The name argument in new StartServerPlugin(name) refers to the built asset, which is named by the output options of webpack (in the example the entry server becomes server.js. This way, the plugin knows which entry to start in case there are several.

If you don't pass a name, the plugin will tell you the available names.

You can use nodeArgs and args to pass arguments to node and your script, respectively. For example, you can use this to use the node debugger.

To use Hot Module Reloading with your server code, set Webpack to "hot" mode and include the webpack/hot/poll or webpack/hot/signal modules. Make sure they are part of your server bundle, e.g. if you are using node-externals put them in your whitelist. The latter module requires the signal option.


MIT License 2016 © Eric Clemmons

You can’t perform that action at this time.