From b8209fce84272c03a87f8d852620aa22ee8133ed Mon Sep 17 00:00:00 2001 From: Pedro Cattori Date: Wed, 25 Oct 2023 12:01:58 -0400 Subject: [PATCH] do not use built-in, minimal SSR in middleware mode (#7763) --- integration/vite-dev-express-test.ts | 12 +++++++----- packages/remix-dev/vite/plugin.ts | 2 ++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/integration/vite-dev-express-test.ts b/integration/vite-dev-express-test.ts index a96d83a0d3..0a00a98025 100644 --- a/integration/vite-dev-express-test.ts +++ b/integration/vite-dev-express-test.ts @@ -65,6 +65,7 @@ test.beforeAll(async () => { build: vite ? () => unstable_loadViteServerBuild(vite) : await import("./build/index.js"), + getLoadContext: () => ({ value: "context" }), }) ); @@ -162,18 +163,19 @@ test("Vite custom server HMR & HDR", async ({ page }) => { ) .replace( "// loader", - `// loader\nexport const loader = () => json({ message: "HDR updated: 0" });` + `// loader\nexport const loader = ({ context }) => json({ message: "HDR updated: 0", context });` ) .replace( "// hooks", - "// hooks\nconst { message } = useLoaderData();" + "// hooks\nconst { message, context } = useLoaderData();" ) .replace( "{/* elements */}", - `{/* elements */}\n

{message}

` + `{/* elements */}\n

{context.value}

\n

{message}

` ) ); await page.waitForLoadState("networkidle"); + await expect(page.locator("#index [data-context]")).toHaveText("context"); let hdrStatus = page.locator("#index [data-hdr]"); await expect(hdrStatus).toHaveText("HDR updated: 0"); // React Fast Refresh cannot preserve state for a component when hooks are added or removed @@ -252,8 +254,8 @@ test("Vite custom server HMR & HDR", async ({ page }) => { `// imports\nimport { direct } from "../direct-hdr-dep"` ) .replace( - `json({ message: "HDR updated: 2" })`, - `json({ message: "HDR updated: " + direct })` + `json({ message: "HDR updated: 2", context })`, + `json({ message: "HDR updated: " + direct, context })` ) ); await page.waitForLoadState("networkidle"); diff --git a/packages/remix-dev/vite/plugin.ts b/packages/remix-dev/vite/plugin.ts index 44963c33df..6b0cd4f001 100644 --- a/packages/remix-dev/vite/plugin.ts +++ b/packages/remix-dev/vite/plugin.ts @@ -520,6 +520,8 @@ export const remixVitePlugin: RemixVitePlugin = (options = {}) => { vite.httpServer?.on("listening", () => { setTimeout(showUnstableWarning, 50); }); + // Let user servers handle SSR requests in middleware mode + if (vite.config.server.middlewareMode) return; return () => { vite.middlewares.use(async (req, res, next) => { try {