Skip to content
返回部署

部署 RedwoodJS 应用

全栈 React+Prisma+GraphQL 框架,部署到 Vercel、Netlify 或裸机 serverless 函数。

平台高级

为什么

RedwoodJS 在一个 CLI 驱动框架内集成 React 前端、Prisma ORM 和 GraphQL API,约定优于配置。Serverless 函数零配置部署到 Vercel/Netlify。

平台即服务采用率 2024 年增长 24%,团队从虚拟机管理转向 git push 部署。the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research),PaaS 层捕获了大多数新工作负载。

何时使用

全栈 TypeScript 应用配 Prisma 和 GraphQL 用 Redwood。非 Prisma 项目或需不同 API 风格时避免。

如何做

1. 构建 — rwj build,编译 web + api 2. Vercel — rwj deploy vercel,自动配置 3. Netlify — rwj deploy netlify 4. 裸机 — rwj deploy baremetal,需 PM2 + Nginx 5. DB — 发布时 rwj prisma migrate deploy 6. 函数 — api/src/functions 成为 serverless 端点

示例

// 部署到 Vercel npx rwj deploy vercel // api/src/functions/users.ts — GraphQL 函数 import { db } from "src/lib/db"; export const users = () => db.user.findMany(); // redwood.toml — 部署配置 [web] port = 8910 [api] port = 8911

常见问题

  • ⚠部署时 Prisma migrate 失败 — DB 不可访问或 schema 漂移
  • ⚠生产暴露 GraphQL playground — 设 GRAPHQL_ENDPOINT_GRAPHIQL=false
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓prisma migrate deploy 作为 release 命令 — 非运行时
  • ✓用 Redwood 生成器(rwj g)跨服务一致脚手架
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答