Skip to content

Commit ca45788

Browse files
authored
Fix prerendering when using a custom server (#12759)
1 parent 004f18f commit ca45788

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

.changeset/twenty-llamas-lick.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@react-router/dev": patch
3+
---
4+
5+
Fix prerendering when using a custom server - previously we ended up trying to import the users custom server when we actually want to import the virtual server build module

packages/react-router-dev/vite/plugin.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1203,6 +1203,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => {
12031203
viteConfig,
12041204
ctx.reactRouterConfig,
12051205
serverBuildDirectory,
1206+
ssrViteManifest[virtual.serverBuild.id].file,
12061207
clientBuildDirectory
12071208
);
12081209
}
@@ -1213,6 +1214,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => {
12131214
viteConfig,
12141215
ctx.reactRouterConfig,
12151216
serverBuildDirectory,
1217+
ssrViteManifest[virtual.serverBuild.id].file,
12161218
clientBuildDirectory
12171219
);
12181220
}
@@ -1774,13 +1776,10 @@ async function getRouteMetadata(
17741776

17751777
async function getPrerenderBuildAndHandler(
17761778
viteConfig: Vite.ResolvedConfig,
1777-
reactRouterConfig: ResolvedReactRouterConfig,
1778-
serverBuildDirectory: string
1779+
serverBuildDirectory: string,
1780+
serverBuildFile: string
17791781
) {
1780-
let serverBuildPath = path.join(
1781-
serverBuildDirectory,
1782-
reactRouterConfig.serverBuildFile
1783-
);
1782+
let serverBuildPath = path.join(serverBuildDirectory, serverBuildFile);
17841783
let build = await import(url.pathToFileURL(serverBuildPath).toString());
17851784
let { createRequestHandler: createHandler } = await import("react-router");
17861785
return {
@@ -1793,12 +1792,13 @@ async function handleSpaMode(
17931792
viteConfig: Vite.ResolvedConfig,
17941793
reactRouterConfig: ResolvedReactRouterConfig,
17951794
serverBuildDirectory: string,
1795+
serverBuildFile: string,
17961796
clientBuildDirectory: string
17971797
) {
17981798
let { handler } = await getPrerenderBuildAndHandler(
17991799
viteConfig,
1800-
reactRouterConfig,
1801-
serverBuildDirectory
1800+
serverBuildDirectory,
1801+
serverBuildFile
18021802
);
18031803
let request = new Request(`http://localhost${reactRouterConfig.basename}`);
18041804
let response = await handler(request);
@@ -1821,12 +1821,13 @@ async function handlePrerender(
18211821
viteConfig: Vite.ResolvedConfig,
18221822
reactRouterConfig: ResolvedReactRouterConfig,
18231823
serverBuildDirectory: string,
1824+
serverBuildPath: string,
18241825
clientBuildDirectory: string
18251826
) {
18261827
let { build, handler } = await getPrerenderBuildAndHandler(
18271828
viteConfig,
1828-
reactRouterConfig,
1829-
serverBuildDirectory
1829+
serverBuildDirectory,
1830+
serverBuildPath
18301831
);
18311832

18321833
let routes = createPrerenderRoutes(build.routes);

0 commit comments

Comments
 (0)