Null Webpack compiler after run Fixes #3272
| @@ -5,7 +5,8 @@ import { publicLibConfig } from '../../webpack.config.js'; | ||
| 5 | 5 | export default function getWebpackServeMiddleware() { |
| 6 | 6 | const outputPath = publicLibConfig.output?.path; |
| 7 | 7 | const outputFile = publicLibConfig.output?.filename; |
| 8 | - const compiler = webpack(publicLibConfig); | |
| 8 | + /** @type {import('webpack').Compiler|null} */ | |
| 9 | + let compiler = webpack(publicLibConfig); | |
| 9 | 10 | |
| 10 | 11 | /** |
| 11 | 12 | * A very spartan recreation of webpack-dev-middleware. |
| @@ -28,6 +29,11 @@ export default function getWebpackServeMiddleware() { | ||
| 28 | 29 | */ |
| 29 | 30 | devMiddleware.runWebpackCompiler = () => { |
| 30 | 31 | return new Promise((resolve) => { |
| 32 | + if (compiler === null) { | |
| 33 | + console.warn('Webpack compiler is already closed.'); | |
| 34 | + return resolve(); | |
| 35 | + } | |
| 36 | + | |
| 31 | 37 | console.log(); |
| 32 | 38 | console.log('Compiling frontend libraries...'); |
| 33 | 39 | compiler.run((_error, stats) => { |
| @@ -36,7 +42,11 @@ export default function getWebpackServeMiddleware() { | ||
| 36 | 42 | console.log(output); |
| 37 | 43 | console.log(); |
| 38 | 44 | } |
| 45 | + if (compiler === null) { | |
| 46 | + return resolve(); | |
| 47 | + } | |
| 39 | 48 | compiler.close(() => { |
| 49 | + compiler = null; | |
| 40 | 50 | resolve(); |
| 41 | 51 | }); |
| 42 | 52 | }); |