fix(vite): resolve dev & preview server promises on process exit (#14812)
This commit is contained in:
parent
06fbb4ffb6
commit
b35187c142
@ -58,8 +58,11 @@ export default async function* viteDevServerExecutor(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// This Promise intentionally never resolves, leaving the process running
|
await new Promise<void>((resolve) => {
|
||||||
await new Promise(() => {});
|
process.once('SIGINT', () => resolve());
|
||||||
|
process.once('SIGTERM', () => resolve());
|
||||||
|
process.once('exit', () => resolve());
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async function runViteDevServer(server: ViteDevServer): Promise<void> {
|
async function runViteDevServer(server: ViteDevServer): Promise<void> {
|
||||||
@ -68,12 +71,9 @@ async function runViteDevServer(server: ViteDevServer): Promise<void> {
|
|||||||
|
|
||||||
const processOnExit = async () => {
|
const processOnExit = async () => {
|
||||||
await server.close();
|
await server.close();
|
||||||
process.off('SIGINT', processOnExit);
|
|
||||||
process.off('SIGTERM', processOnExit);
|
|
||||||
process.off('exit', processOnExit);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
process.on('SIGINT', processOnExit);
|
process.once('SIGINT', processOnExit);
|
||||||
process.on('SIGTERM', processOnExit);
|
process.once('SIGTERM', processOnExit);
|
||||||
process.on('exit', processOnExit);
|
process.once('exit', processOnExit);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,14 +44,11 @@ export default async function* vitePreviewServerExecutor(
|
|||||||
|
|
||||||
const processOnExit = async () => {
|
const processOnExit = async () => {
|
||||||
await closeServer(server);
|
await closeServer(server);
|
||||||
process.off('SIGINT', processOnExit);
|
|
||||||
process.off('SIGTERM', processOnExit);
|
|
||||||
process.off('exit', processOnExit);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
process.on('SIGINT', processOnExit);
|
process.once('SIGINT', processOnExit);
|
||||||
process.on('SIGTERM', processOnExit);
|
process.once('SIGTERM', processOnExit);
|
||||||
process.on('exit', processOnExit);
|
process.once('exit', processOnExit);
|
||||||
|
|
||||||
// Launch the build target.
|
// Launch the build target.
|
||||||
const target = parseTargetString(options.buildTarget, context.projectGraph);
|
const target = parseTargetString(options.buildTarget, context.projectGraph);
|
||||||
@ -89,7 +86,11 @@ export default async function* vitePreviewServerExecutor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await new Promise(() => {});
|
await new Promise<void>((resolve) => {
|
||||||
|
process.once('SIGINT', () => resolve());
|
||||||
|
process.once('SIGTERM', () => resolve());
|
||||||
|
process.once('exit', () => resolve());
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function closeServer(server?: PreviewServer): Promise<void> {
|
function closeServer(server?: PreviewServer): Promise<void> {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user