用途:在 Vercel 上部署并运营 Next.js 16 SaaS,配合 Cloudflare DNS 与 Supabase,围绕三点优化:操作可控(CLI 优先)、成本可控(避免意外构建)、正确性(缓存与鉴权不破坏 SSR)。
架构决策:鉴权应用(SSR/RSC)走 Vercel(如 app.example.com),Cloudflare 中用 DNS-only(不代理);营销/文档等静态内容放 Cloudflare Pages(www.example.com),用 Direct Upload;上传与资源放 Cloudflare R2(assets.example.com),由 Worker 签名 URL。原因是 Vercel 不推荐反向代理,按主机名拆分可在不破坏 Vercel 边缘的前提下获得 Cloudflare 收益。
主要能力:手动/预构建部署、构建信用控制、环境变量与密钥管理、域名与 DNS 配置、Supabase 迁移与类型生成、Cloudflare 卸载。
使用方式(快速开始): vercel pull --yes --token $VERCEL_TOKEN vercel build --prod vercel deploy --prebuilt --prod --token $VERCEL_TOKEN
停止构建信用消耗:在 vercel.json 配置 "git": { "deploymentEnabled": false }(最有效);预构建工作流;Ignored Build Step(退出 0 跳过、1 构建,通常相反);Deploy Hooks。
环境变量:vercel env ls;vercel env add SECRET_NAME production;vercel env pull .env.local。也支持 REST 批量同步(upsert)。
域名:vercel domains add example.com,再在 Cloudflare 添加 A 记录指向 Vercel IP 或 CNAME 指向 cname.vercel-dns.com(DNS-only)。
工作流:安装 vercel、supabase、wrangler、jq;配置 VERCEL_TOKEN、CLOUDFLARE_API_TOKEN;链接并拉取项目;关闭自动部署、配置预构建、迁移营销与资源到 Pages/R2;管理密钥与 OIDC;用 supabase migration 与 db push 管理数据库、生成类型。
限制与注意:Ignored Build Step 退出码含义易反;被忽略的构建仍计入配额,建议改用 git.deploymentEnabled;Cloudflare 代理与 Vercel 同用会出问题,需 DNS-only;勿提交 .vercel/;密钥勿写入配置文件,应用 vercel env 或 wrangler secret put。其他细节暂未提供。