Files are not removed when there is an error in the build
tobia opened this issue · comments
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:
- Use the following minimal
webpack.config.js
:
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
output: { filename: '[name].[contenthash].js' },
plugins: [ new CleanWebpackPlugin() ]
};
- Create a minimal
src/index.js
with no errors. - Launch webpack in watch mode: the
dist
folder is populated with only onemain.*.js
file. - 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;
}
Isn't this expected behavior from v3?
https://github.com/johnagan/clean-webpack-plugin/releases
#134
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.