webpack-dev-middleware icon indicating copy to clipboard operation
webpack-dev-middleware copied to clipboard

Reset current compilation if file was changed

Open sanex3339 opened this issue 6 years ago • 4 comments

The Issues page for this repository is not a support forum. Please ask questions on StackOverflow or the webpack Gitter (https://gitter.im/webpack/webpack). Questions will be closed. If you proceed with this form, please fill out all fields, or your issue may be closed as "invalid." Please do not delete this template from a new issue. Please remove this header to acknowledge this message.

  • Operating System: Mac OS 10.12.4
  • Node Version: 8.11.2
  • NPM Version: 5.6.0
  • webpack version: 4.29.3
  • webpack-dev-middleware Version: 3.5.2
  • [] This is a feature request
  • [x] This is a bug

Expected Behavior

Current active compilation should reset if file was changed and next compilation should start immediate

Actual Behavior

Current active compilation will finish first if file was changed and only after that - next compilation will start

For Bugs; How can we reproduce the behavior?

I'm using latest koa-webpack + webpack@4. Start server, change file, after two seconds change file again. As result - two full compilations instead of 2 seconds of first compilation + full second compilation.

sanex3339 avatar Feb 15 '19 14:02 sanex3339

Looks problem on koa-webpack side, we don't officially support koa, i recommend use webpack-dev-server. Anyway please create minimum reproducible test repo and describe in readme what you have and what you expect.

alexander-akait avatar Feb 15 '19 14:02 alexander-akait

I looked at sources https://github.com/webpack/webpack-dev-middleware/blob/master/lib/context.js#L95

context.compiler.hooks.invalid.tap('WebpackDevMiddleware', invalid);
  context.compiler.hooks.run.tap('WebpackDevMiddleware', invalid);
  context.compiler.hooks.done.tap('WebpackDevMiddleware', done);
  context.compiler.hooks.watchRun.tap('WebpackDevMiddleware', (comp, callback) => {
    invalid(callback);
  });

None of this hooks was triggered when i changed file during existing compilation process

sanex3339 avatar Feb 15 '19 16:02 sanex3339

@sanex3339 no problem with webpack-dev-server, please create minimum reproducible test repo

alexander-akait avatar Feb 15 '19 16:02 alexander-akait

Here solution https://github.com/webpack/webpack-dev-server/issues/1479#issuecomment-442492922

alexander-akait avatar May 15 '19 08:05 alexander-akait