mirror of
https://github.com/strapi/strapi.git
synced 2026-01-05 11:45:51 +00:00
fix(admin): close webpack watch on reload (#18667)
This commit is contained in:
parent
0e69461383
commit
805908ba2b
@ -85,7 +85,7 @@ const develop = async ({ cwd, polling, logger, tsconfig, ...options }: DevelopOp
|
||||
|
||||
EE.init(cwd);
|
||||
await writeStaticClientFiles(ctx);
|
||||
await watchWebpack(ctx);
|
||||
const webpackWatcher = await watchWebpack(ctx);
|
||||
|
||||
const adminDuration = timer.end('creatingAdmin');
|
||||
adminSpinner.text = `Creating admin (${adminDuration}ms)`;
|
||||
@ -165,6 +165,7 @@ const develop = async ({ cwd, polling, logger, tsconfig, ...options }: DevelopOp
|
||||
);
|
||||
await watcher.close();
|
||||
await strapiInstance.destroy();
|
||||
webpackWatcher.close();
|
||||
process.send?.('killed');
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import os from 'node:os';
|
||||
import path from 'node:path';
|
||||
import { promisify } from 'node:util';
|
||||
import webpackDevMiddleware from 'webpack-dev-middleware';
|
||||
import webpackHotMiddleware from 'webpack-hot-middleware';
|
||||
import { webpack } from 'webpack';
|
||||
@ -7,13 +8,17 @@ import type { BuildContext } from '../createBuildContext';
|
||||
import { mergeConfigWithUserConfig, resolveDevelopmentConfig } from './config';
|
||||
import { Common } from '@strapi/types';
|
||||
|
||||
const watch = async (ctx: BuildContext) => {
|
||||
interface Closer {
|
||||
close(): Promise<void>;
|
||||
}
|
||||
|
||||
const watch = async (ctx: BuildContext): Promise<Closer> => {
|
||||
const config = await resolveDevelopmentConfig(ctx);
|
||||
const finalConfig = await mergeConfigWithUserConfig(config, ctx);
|
||||
|
||||
ctx.logger.debug('Final webpack config:', os.EOL, finalConfig);
|
||||
|
||||
return new Promise((res) => {
|
||||
return new Promise<Closer>((res) => {
|
||||
const compiler = webpack(finalConfig);
|
||||
|
||||
const devMiddleware = webpackDevMiddleware(compiler);
|
||||
@ -91,7 +96,15 @@ const watch = async (ctx: BuildContext) => {
|
||||
]);
|
||||
|
||||
devMiddleware.waitUntilValid(() => {
|
||||
res(true);
|
||||
res({
|
||||
async close() {
|
||||
await Promise.all([
|
||||
promisify(devMiddleware.close.bind(devMiddleware))(),
|
||||
hotMiddleware.close(),
|
||||
promisify(compiler.close.bind(compiler))(),
|
||||
]);
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user