From 5469b028bd3ff4f1bf29dabc5e614c6912f2cdd7 Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Wed, 5 Nov 2025 04:28:34 +0000 Subject: [PATCH] completionId: cgen-da4aa54bbb644b918bec8dadedbe990e cgen-da4aa54bbb644b918bec8dadedbe990e --- vite.config.ts | 49 +++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index c2b67ec1..1e3da552 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -25,33 +25,34 @@ export default defineConfig(({ mode }) => ({ })); function expressPlugin(): Plugin { + let expressApp: any = null; + return { name: "express-plugin", - apply: "serve", // Only apply during development (serve mode) - configureServer(server) { - // Load and mount Express BEFORE other middleware - return { - pre: [], - post: [], - }; - }, - configureServer(server) { - (async () => { - try { - console.log("[Vite] Loading Express server..."); - const { createServer } = await import("./server"); - const app = createServer(); - console.log("[Vite] Express server created, mounting to PRE middleware..."); - // Mount at the beginning so it handles /api/* routes before Vite - server.middlewares.use(app); - console.log("[Vite] Express server mounted successfully"); - } catch (e) { - console.error("[Vite] Failed to start express middleware:", e instanceof Error ? e.message : String(e)); - if (e instanceof Error && e.stack) { - console.error("[Vite] Stack:", e.stack); - } + apply: "serve", + async configureServer(server) { + try { + console.log("[Vite] Loading Express server..."); + const { createServer } = await import("./server"); + expressApp = createServer(); + console.log("[Vite] Express server created"); + + // Return middleware hook that runs BEFORE Vite's default handlers + return { + pre: [ + { + handler: expressApp, + ident: "express-api", + } as any, + ], + }; + } catch (e) { + console.error("[Vite] Failed to load Express server:", e instanceof Error ? e.message : String(e)); + if (e instanceof Error && e.stack) { + console.error(e.stack); } - })(); + return {}; + } }, }; }