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