johnagan / clean-webpack-plugin

A webpack plugin to remove your build folder(s) before building

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Files are not removed when there is an error in the build

tobia opened this issue · comments

commented

The plugin does nothing (does not remove the old files) when there is an error in the build. I think this is a bug.

Steps to reproduce:

  1. Use the following minimal webpack.config.js:
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
  output: { filename: '[name].[contenthash].js' },
  plugins: [ new CleanWebpackPlugin() ]
};
  1. Create a minimal src/index.js with no errors.
  2. Launch webpack in watch mode: the dist folder is populated with only one main.*.js file.
  3. Change src/index.js introducing a syntax error.

Result: the dist folder now has two main.*.js files.

Expected result: the old file is cleaned an only the newest version remains.

Workaround

Remove the following lines from the plugin source code:

    /**
     * Do nothing if there is a webpack error
     */
    if (stats.hasErrors()) {
      if (this.verbose) {
        // eslint-disable-next-line no-console
        console.warn('clean-webpack-plugin: pausing due to webpack errors');
      }

      return;
    }

Preventing file deletion can be useful in some cases. However, I think that we should have an option to enable/disable this feature. Because in some case this is more annoying than useful.