webpack-dev-server hot reload not working

webpack/hot reload without dev-server
webpack not compiling on change
webpack-hot-middleware
webpack-dev-server not compiling
webpack-dev-server not rebuilding
webpack 3 hot reload
how does hot reloading work
webpack-dev-server debug

My file structure is:

dist
  css
    style.css
  index.html
  js
    bundle.js
src
  css
    style.css
  index.html
  js
    main.js
node_modules
webpack.config.js
package.json

My webpack.config.js looks like:

module.exports = {
    entry: './src/js/main.js',
    output: {
        path: __dirname,
        filename: './dist/js/bundle.js'
    },
    module: {
        loaders: [
            {
                test: /\.js$/,
                exclude: /(node_modules)/,
                loader: 'babel',
                query: {
                    presets: ['es2015']
                }
            },
            {
                test: /\.vue$/,
                loader: 'vue'
            }
        ]
    }
};

I run:

webpack-dev-server --content-base dist --hot

And it builds and seems like it's working. localhost:8080 shows the expected result but hot-reload does just not work. When I change a file I can see in terminal that a rebuild is happening but nothing happens in the browser. Am I missing something in the config?

When using webpack-dev-server, it builds all files internally and does not spit them out into your output path. Running webpack alone, without the dev server, does the actual compilation to disk. The dev server does everything in memory which speeds up re-compilation by a lot.

To fix your hot reload issue, set the content base to your source directory and enable inline-mode

Like so:

webpack-dev-server --content-base src --hot --inline

Why webpack-dev-server Live-Reload Is Not Working, Setting watchContentBase to true in your Webpack configuration, will 'fix' this issue, but in the wrong way. When using webpack-dev-server, you should never have to run Webpack CLI to make 'live-reload' work. When you make code changes to any code dependency pointed to by entry webpack-dev-server re-generates 'bundle. webpack-dev-server creates ‘bundle.js’ in memory from code pointed to by entry parameter, and serves it from the url path specified by publicPath parameter. webpack-dev-server does not create

What worked for me is to write <script src="bundle.js"> and not <script src="dist/bundle.js"> in my index.html file.

// index.html
<script src="bundle.js"></script>      // works
<script src="dist/bundle.js"></script> // doesn't work!

Keeping dist/bundle.js as the output file works perfectly fine if you just build it using webpack. But when using webpack-dev-server, the static file already in the file system continues to be served, and not the latest hot replacement. It seems webpack-dev-server gets confused when it sees dist/bundle.js in the html file and doesn't hot replace it, even though webpack.config.js is configured to that path.

webpack-dev-sever HMR do not works, only working full reload , If webpack-dev-server --inline --hot or webpack-dev-server --inline --hot --hot-​only - Error, because HMR doesn't work. Only full page reloading,  I stumbled upon this: Enabling webpack hot-reload in a docker application But the question was kind of wrong. Title mentioned "hot reload", but actually meant libnotify/watchdog.

None of the options on this page worked for me. After changing the devServer section to:

devServer: {
    port: 8080,
    contentBase: ['./src', './public'], // both src and output dirs
    inline: true,
    hot: true
},

it worked.

hot reloading not working unless I have ?reload=true · Issue #255 , js' ], plugins: [ new webpack.HotModuleReplacementPlugin(), //server.js server.​use(webpackDevMiddleware(compiler, { noInfo: true,  Secondly, the hot swap does not work at all. Sometimes it will show that it has built something in the command prompt but it doesnt refresh or upon refreshing does not show changes. The documentation and instructions for this part of webpack are severly lacking and the internet is cluttered with this issue.

--inline --hot wasn't an issue for me

If you are using redux can try this.

For some random reason redux-devtools was not allowing hot reload for me. Try removing it from root component and redux compose config.

Note: Use redux devtool browser extension with this config in your store configuration: window.devToolsExtension ? window.devToolsExtension() : f => f

Also, must read: https://medium.com/@rajaraodv/webpacks-hmr-react-hot-loader-the-missing-manual-232336dc0d96#.ejpsmve8f

Or try hot reload 3: example: https://github.com/gaearon/redux-devtools/commit/64f58b7010a1b2a71ad16716eb37ac1031f93915

After recent updates, hot reload not working · Issue #79 · webpack , webpack.hot.config'); var server = new WebpackDevServer(webpack(config), { publicPath: config.output.publicPath, hot: true, stats: { colors:  Webpack dev server hot mode not working. Ask Question Asked 4 years, 6 months ago. Active 3 years ago. Webpack: How to setup webpack-dev-server and Hot Reload. 3.

Webpack hot reloading stopped working for me as well. The solution for me was to delete the node_modules folder and fresh install all dependencies. Just open the parent folder of node_modules in your terminal and run npm install

Hot Module Replacement, Hot Module Replacement (HMR) exchanges, adds, or removes modules while an application is running, without a full reload. It typically stores these IDs in memory (e.g. with webpack-dev-server), but it's also possible to store them in a However, in most cases, it's not mandatory to write HMR code in every module. Seems like the server responds with the next hash, but after fixing the error, another hash is generated while the client is still trying to access the old hash. Omitting the hash seems to fix this. The problem seems to be that the client does not update the next hash when HMR compiles with errors..

Webpack Dev Server, http://localhost:9000/ webpack output is served from /build/ Content not from webpack By default, it will use your current working directory to serve content. Enables Hot Module Replacement (see devServer.hot ) without page refresh as a  I'm not sure if the Typescript is the root of the problem. I've been struggling to get HMR working with this combo: webpack 2.2.0. webpack-dev-server 2.2.0

A Deep Dive into Hot Module Replacement with Webpack (Part Two , It's best if you clone the project and follow the instructions, but it's not mandatory. The devtools console says that hot module replacement is running. Therefore, the webpack-dev-server falls back to a full page reload. Webpack hot module reloading is a powerful feature of Webpack-dev-server, which once configured (correctly) can bring your dream of instantly reflected changes to life. The Node.js API is not well documented on Webpack’s official website, and is easily overlooked.

React & Webpack Dev Server: Hot Reloading not working, To run the project, I run yarn run dev and it will load the webpack-dev-server and open the React app in the browser, however, it doesn't hot reload. I'm not sure  Moved from OS X to Windows 10 and now webpack-dev-server is not detecting changes and rebuilding the bundle. I'm using Atom so there's no safe write, so that shouldn't be the problem. I've attempted most solutions in this issue to no avail. Inline; Hot; Watch - Use Polling; Here's my config see devServer.

Comments
  • I don't understand. So wheres the index.html that adds a script with bundle.js or how does this work? If it point to source I'd get my app's folder structure at localhost:8080
  • @JuanSolano, the <script> tag can be injected by webpack into your existing html or you can generate an html from a template. To give you a proper answer, I suggest you ask a question with your specific setup; i'd be glad to help!
  • Or, in webpack.config.js modify the devServer node to include both {inline:true, hot: true} ?
  • this work for me too. I can see following message on start ℹ 「wds」: Project is running at localhost:8080 ℹ 「wds」: webpack output is served from /
  • I run the dev server directly from CLI instead of using an npm script, which shouldn't make a difference at all... I think it has to do with my file structure and I might not be using --content-base param correctly
  • Why would you delete the test stub?