部署
Cloudflare Workers —— 一条命令
ShipAny vinext 是 Cloudflare 原生的——每个分支都用 Vite + @cloudflare/vite-plugin 构建,经 vinext deploy 发布。在 Claude Code 中运行:
/deploy-cloudflare这一个 skill 驱动完整的生产部署流程:
校验 wrangler whoami;仅在未登录时触发浏览器授权。
创建 D1 数据库(默认,零外部依赖)并把绑定写入 wrangler.jsonc——如果你提到 Postgres/Neon/Supabase,则改为配置 Hyperdrive 连接你已有的 PostgreSQL。
向远端数据库应用 drizzle 迁移(wrangler d1 migrations apply --remote,Postgres 则直接 pnpm db:migrate)。
在远端数据库初始化默认角色/权限,并通过 wrangler secret put 上传密钥(AUTH_SECRET 等)——密钥值永远不会回显到屏幕。
pnpm run deploy(先加载 .env.production,再执行 vinext deploy)。最终部署永远先询问确认——这是唯一不可逆的一步。
把真实的 *.workers.dev(或自定义域名)URL 固化进构建产物;首次部署时引导创建 / 提升一个 super_admin 账号,让你立即可以登录 /admin。
幂等设计 ——"再发布一下"就是再跑一次 /deploy-cloudflare:每个阶段都会检测已有状态(D1 已存在、迁移已应用、密钥已上传、管理员已存在)并自动跳过,只有最新代码的构建 + 部署会真正执行。
常用参数:
/deploy-cloudflare --domain=app.example.com # 绑定自定义域名
/deploy-cloudflare --admin-email=X --admin-password=Y # 设置管理员账号
/deploy-cloudflare --rotate-secrets # 强制重新上传所有密钥
/deploy-cloudflare --preview # 部署到预览环境D1 vs Postgres(Hyperdrive)
| D1(默认) | Postgres + Hyperdrive | |
|---|---|---|
| 适用 | 零外部依赖 | 已有 Postgres(Neon/Supabase/RDS)或需要 PG 特性 |
| 绑定 | d1_databases → DB | hyperdrive → HYPERDRIVE |
| Schema 推送 | wrangler d1 migrations apply --remote | 直接对 PG 执行 pnpm db:migrate |
手动部署注意事项
pnpm run deploy- 用
pnpm run deploy,不要用pnpm deploy—— pnpm 会把deploy当作 workspace 命令拦截 vinext deploy前必须先加载.env.production(包装脚本已处理)——否则.env.local里的 localhost URL 会被固化进服务端构建
要部署到 Node/Docker/Vercel?那是上游版本的事——见 ShipAny Next → 部署。