Skip to content
25 changes: 25 additions & 0 deletions packages/webpack-cli/lib/webpack-cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -2324,6 +2324,31 @@ class WebpackCLI {
return;
}

if (compiler.cache) {
const signals = ["SIGINT", "SIGTERM"];
let needForceShutdown = false;

signals.forEach((signal) => {
const listener = () => {
if (needForceShutdown) {
process.exit();
}

this.logger.info(
"Gracefully shutting down. To force exit, press ^C again. Please wait...",
);

needForceShutdown = true;

compiler.close(() => {
process.exit();
});
};

process.on(signal, listener);
});
}

const isWatch = (compiler) =>
compiler.compilers
? compiler.compilers.some((compiler) => compiler.options.watch)
Expand Down