diff --git a/src/node/cli.ts b/src/node/cli.ts index 71eb4c0f26b4..acccda7f4ab2 100644 --- a/src/node/cli.ts +++ b/src/node/cli.ts @@ -20,6 +20,8 @@ if (root) { argv.root = root } +let restartPromise: Promise | undefined + if (!command || command === 'dev') { if (argv.force) { delete argv.force @@ -28,8 +30,16 @@ if (!command || command === 'dev') { const createDevServer = async () => { const server = await createServer(root, argv, async () => { - await server.close() - await createDevServer() + if (!restartPromise) { + restartPromise = (async () => { + await server.close() + await createDevServer() + })().finally(() => { + restartPromise = undefined + }) + } + + return restartPromise }) await server.listen() logVersion(server.config.logger)