Skip to content

Commit 3a6eb31

Browse files
committed
feat: 通过更新依赖项、构建脚本和服务器端渲染入口点,将项目迁移到Cloudflare Pages。
1 parent 65faa44 commit 3a6eb31

File tree

6 files changed

+1139
-894
lines changed

6 files changed

+1139
-894
lines changed

app/entry.server.tsx

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import type { AppLoadContext, EntryContext } from "react-router";
2+
import { ServerRouter } from "react-router";
3+
import { isbot } from "isbot";
4+
import { renderToReadableStream } from "react-dom/server";
5+
6+
export default async function handleRequest(
7+
request: Request,
8+
responseStatusCode: number,
9+
responseHeaders: Headers,
10+
routerContext: EntryContext,
11+
loadContext: AppLoadContext
12+
) {
13+
let userAgent = request.headers.get("user-agent");
14+
let stream = await renderToReadableStream(
15+
<ServerRouter context={routerContext} url={request.url} />,
16+
{
17+
signal: request.signal,
18+
onError(error: unknown) {
19+
// Log streaming rendering errors from inside the shell
20+
console.error(error);
21+
responseStatusCode = 500;
22+
},
23+
}
24+
);
25+
26+
if (isbot(userAgent)) {
27+
await stream.allReady;
28+
}
29+
30+
responseHeaders.set("Content-Type", "text/html");
31+
return new Response(stream, {
32+
status: responseStatusCode,
33+
headers: responseHeaders,
34+
});
35+
}

functions/[[path]].ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
2+
import { createPagesFunctionHandler } from "@react-router/cloudflare";
3+
import * as build from "../build/server/index.js";
4+
5+
export const onRequest = createPagesFunctionHandler({ build });

functions/env.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
declare module "*build/server/index.js";

package.json

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,26 @@
22
"name": "weiz-home",
33
"private": true,
44
"type": "module",
5+
"version": "2.0.0",
56
"scripts": {
67
"build": "react-router build",
78
"dev": "react-router dev",
8-
"start": "react-router-serve ./build/server/index.js",
9+
"start": "wrangler pages dev build/client",
10+
"deploy": "pnpm run build && wrangler pages deploy build/client",
911
"typecheck": "react-router typegen && tsc"
1012
},
1113
"dependencies": {
1214
"@ant-design/icons": "^6.0.0",
1315
"@ant-design/v5-patch-for-react-19": "^1.0.3",
14-
"@react-router/node": "^7.5.3",
15-
"@react-router/serve": "^7.5.3",
1616
"antd": "^5.26.2",
1717
"isbot": "^5.1.27",
1818
"react": "^19.1.0",
1919
"react-dom": "^19.1.0",
20-
"react-router": "^7.5.3"
20+
"react-router": "^7.9.6"
2121
},
2222
"devDependencies": {
23-
"@react-router/dev": "^7.5.3",
23+
"@react-router/cloudflare": "^7.9.6",
24+
"@react-router/dev": "^7.9.6",
2425
"@tailwindcss/vite": "^4.1.4",
2526
"@types/node": "^20",
2627
"@types/react": "^19.1.2",
@@ -29,6 +30,7 @@
2930
"tailwindcss": "^4.1.4",
3031
"typescript": "^5.8.3",
3132
"vite": "^6.3.3",
32-
"vite-tsconfig-paths": "^5.1.4"
33+
"vite-tsconfig-paths": "^5.1.4",
34+
"wrangler": "^4.50.0"
3335
}
3436
}

0 commit comments

Comments
 (0)