diff --git a/packages/vite/src/node/server/index.ts b/packages/vite/src/node/server/index.ts index d380d0029b1a9c..a64d13a5e0fafd 100644 --- a/packages/vite/src/node/server/index.ts +++ b/packages/vite/src/node/server/index.ts @@ -548,15 +548,19 @@ export async function createServer( } if (!middlewareMode && httpServer) { + let isOptimized = false // overwrite listen to run optimizer before server start const listen = httpServer.listen.bind(httpServer) httpServer.listen = (async (port: number, ...args: any[]) => { - try { - await container.buildStart({}) - await runOptimize() - } catch (e) { - httpServer.emit('error', e) - return + if (!isOptimized) { + try { + await container.buildStart({}) + await runOptimize() + isOptimized = true + } catch (e) { + httpServer.emit('error', e) + return + } } return listen(port, ...args) }) as any