Need help with webpack-dev-server?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

6.8K Stars 1.2K Forks MIT License 1.3K Commits 86 Opened issues


Serves a webpack app. Updates the browser on changes. Documentation

Services available


Need anything else?

Contributors list

npm node tests coverage chat downloads contributors


Use webpack with a development server that provides live reloading. This should be used for development only.

It uses webpack-dev-middleware under the hood, which provides fast in-memory access to the webpack assets.

Table of Contents

Getting Started

First things first, install the module:

npm install webpack-dev-server --save-dev

Note: While you can install and run webpack-dev-server globally, we recommend installing it locally. webpack-dev-server will always use a local installation over a global one.


There are two main, recommended methods of using the module:

With the CLI

The easiest way to use it is with the webpack CLI. In the directory where your

is, run:
node_modules/.bin/webpack serve

Following options are available with

webpack serve
Usage: webpack serve|s [entries...] [options]

Options: -c, --config <value...> Provide path to a webpack configuration file e.g. ./webpack.config.js. --config-name <value...> Name of the configuration to use. -m, --merge Merge two or more configurations using 'webpack-merge'. --env <value...> Environment passed to the configuration when it is a function. --progress [value] Print compilation progress during build. -j, --json [value] Prints result as JSON or store it in a file. -d, --devtool Determine source maps to use. --no-devtool Do not generate source maps. --entry <value...> The entry point(s) of your application e.g. ./src/main.js. --mode Defines the mode to pass to webpack. --name Name of the configuration. Used when loading multiple configurations. -o, --output-path Output location of the file generated by webpack e.g. ./dist/. --stats [value] It instructs webpack on how to treat the stats e.g. verbose. --no-stats Disable stats output. -t, --target <value...> Sets the build target e.g. node. --watch-options-stdin Stop watching when stdin stream has ended. --no-watch-options-stdin Do not stop watching when stdin stream has ended. --host The hostname/ip address the server will bind to. --port The port server will listen to. --static [value...] A directory to serve static content from. --no-static Negative 'static' option. --live-reload Enables live reloading on changing files. --no-live-reload Disables live reloading on changing files. --https Use HTTPS protocol. --http2 Use HTTP/2, must be used with HTTPS. --bonjour Broadcasts the server via ZeroConf networking on start. --client-progress Print compilation progress in percentage in the browser. --hot-only Do not refresh page if HMR fails. --setup-exit-signals Close and exit the process on SIGINT and SIGTERM. --no-setup-exit-signals Do not close and exit the process on SIGNIT and SIGTERM. --stdin Close when stdin ends. --open [value] Open the default browser, or optionally specify a browser name. --use-local-ip Open default browser with local IP. --open-page <value...> Open default browser with the specified page. --client-logging Log level in the browser (none, error, warn, info, log, verbose). --history-api-fallback Fallback to /index.html for Single Page Applications. --compress Enable gzip compression. --public The public hostname/ip address of the server. --firewall [value...] Enable firewall or set hosts that are allowed to access the dev server. --no-firewall Disable firewall.

Global options: --color Enable colors on console. --no-color Disable colors on console. -v, --version Output the version number of 'webpack', 'webpack-cli' and 'webpack-dev-server' and commands. -h, --help [verbose] Display help for commands and options. </value...></value...></value...></value...></value...></value...>

Note: For more information on above options explore this link.

With NPM Scripts

NPM package.json scripts are a convenient and useful means to run locally installed binaries without having to be concerned about their full paths. Simply define a script as such:

"scripts": {
  "start:dev": "webpack serve"

And run the following in your terminal/console:

npm run start:dev

NPM will automagically reference the binary in

for you, and execute the file or command.

The Result

Either method will start a server instance and begin listening for connections from

on port

webpack-dev-server is configured by default to support live-reload of files as you edit your assets while the server is running.

See the documentation for more use cases and options.

Browser Support


transpiles the client (browser) scripts to an ES5 state, the project only officially supports the last two versions of major browsers. We simply don't have the resources to support every whacky browser out there.

If you find a bug with an obscure / old browser, we would actively welcome a Pull Request to resolve the bug.


We do our best to keep Issues in the repository focused on bugs, features, and needed modifications to the code for the module. Because of that, we ask users with general support, "how-to", or "why isn't this working" questions to try one of the other support channels that are available.

Your first-stop-shop for support for webpack-dev-server should be the excellent documentation for the module. If you see an opportunity for improvement of those docs, please head over to the repo and open a pull request.

From there, we encourage users to visit the webpack Gitter chat and talk to the fine folks there. If your quest for answers comes up dry in chat, head over to StackOverflow and do a quick search or open a new question. Remember; It's always much easier to answer questions that include your

and relevant files!

If you're twitter-savvy you can tweet #webpack with your question and someone should be able to reach out and lend a hand.

If you have discovered a :bug:, have a feature suggestion, or would like to see a modification, please feel free to create an issue on Github. Note: The issue template isn't optional, so please be sure not to remove it, and please fill it out completely.


We welcome your contributions! Please have a read of for more information on how to get involved.


This project is heavily inspired by peerigon/nof5.



We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.