用途:该技能面向 TanStack Start 应用的部署与渲染配置,基于 Vite 与 Nitro,覆盖托管平台接入、SSR 控制、静态预渲染和 SEO。
主要能力:
- 托管平台:Cloudflare Workers 需安装 pnpm add -D @cloudflare/vite-plugin wrangler,wrangler.jsonc 中设置 compatibility_flags 为 nodejs_compat,部署命令 npx wrangler login && pnpm run deploy;Workers 环境变量按请求注入,模块作用域读取 process.env 会得到 undefined,应使用 cloudflare:workers 的 env 绑定或在 .handler()/middleware 中按请求读取。Netlify 安装 pnpm add -D @netlify/vite-plugin-tanstack-start,部署 npx netlify deploy。Vercel、Railway、Node.js、Docker 走 Nitro,安装 npm install nitro@npm:nitro-nightly@latest,构建启动为 npm run build && node .output/server/index.mjs。Bun 需 React 19,React 18 请用 Node.js 部署,Nitro 加 preset: 'bun'。
- 选择性 SSR:路由 ssr 属性支持 true(默认,服务端执行 beforeLoad/loader 并渲染)、false(仅客户端)、'data-only'(服务端取数、客户端渲染),也可用函数按 params/search 运行时决定。子路由继承父级配置且只能更严格,父级 false 时子级 true 会被忽略。可在 src/start.ts 用 defaultSsr 改全局默认。
- 静态预渲染:tanstackStart 的 prerender 支持 enabled、crawlLinks、concurrency、failOnError;静态路由自动发现,动态路由需 crawlLinks 或显式 pages。
- SEO:路由 head 返回 meta、scripts,可基于 loaderData 生成动态标题与 OG 标签,并注入 JSON-LD;可用服务端路由生成动态 sitemap.xml。
限制与常见错误:Cloudflare 缺少 nodejs_compat 会导致 Node API 运行失败;Bun 部署仅支持 React 19;子路由不能放宽父级 SSR 限制。资料未提供各平台收费、性能数据与完整部署步骤。