部署 Blitz.js 应用
零 API 全栈 React 框架,RPC,部署到 Vercel 或自托管 Node。
平台高级
为什么
Blitz.js 用零 API 层消除 API 样板 — 组件直接导入服务端函数。基于 Next.js,继承所有部署选项并加 Prisma 和 auth。
何时使用
全栈 React 应用想要 Next.js + Prisma + auth 且不写 API 用 Blitz。需要为移动客户端单独 API 时避免。
如何做
1. 构建 — blitz build,包装 Next.js 构建
2. Vercel — blitz start --production 或 git push
3. 自托管 — blitz build && blitz start --production
4. DB — blitz prisma migrate deploy
5. RPC — "use server" 函数自动成为 RPC 端点
示例
// app/users/queries/getUsers.ts — 零 API RPC
import { db } from "db";
export default async function getUsers() {
"use server";
return db.user.findMany();
}
// 部署:blitz build && vercel --prod
常见问题
- ⚠RPC 函数在客户端运行 — 忘记 'use server' 指令
- ⚠Prisma client 未生成 — 构建前运行 blitz prisma generate
- ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致
最佳实践
- ✓路由保护用 Blitz auth 中间件 — 内置 session 管理
- ✓RPC 函数放 queries/mutations 文件夹 — 约定启用自动路由
- ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求