名称: deploy-agent
描述: 全栈应用多步骤部署代理。构建 → 测试 → GitHub → Cloudflare Pages,每个步骤均需人工批准。
元数据:
clawdbot:
emoji: "🚀"
requires:
bins: ["gh", "wrangler", "git"]
通过多步骤工作流部署全栈应用,每个阶段都需要人工批准。
# 通过 ClawdHub 安装
clawdhub install deploy-agent
# 初始化新部署
deploy-agent init my-app
# 检查状态
deploy-agent status my-app
# 继续执行后续步骤
deploy-agent continue my-app
| 步骤 | 命令 | 描述 | 需要批准 |
|---|---|---|---|
| 1 | deploy-agent init <名称> |
启动部署 | ✅ 设计阶段 |
| 2 | deploy-agent build <名称> |
构建应用 | ✅ 测试前 |
| 3 | deploy-agent test <名称> |
本地测试 | ✅ 推送到 GitHub 前 |
| 4 | deploy-agent push <名称> |
推送到 GitHub | ✅ 部署到 Cloudflare 前 |
| 5 | deploy-agent deploy <名称> |
部署到 Cloudflare | ✅ 最终步骤 |
deploy-agent init my-app
创建新的部署状态并等待设计输入。
deploy-agent status my-app
显示当前步骤、批准状态和部署信息。
deploy-agent continue my-app
获取当前步骤的后续操作指导。
deploy-agent build my-app
使用 C.R.A.B 完成设计后,运行此命令来构建应用。
deploy-agent test my-app
在推送代码前,验证应用在本地运行正常。
deploy-agent push my-app [仓库名]
创建 GitHub 仓库并推送代码。默认仓库名与应用名相同。
deploy-agent deploy my-app [自定义域名]
部署到 Cloudflare Pages。默认域名:{名称}.sheraj.org
deploy-agent cancel my-app
中止并清理部署。
deploy-agent list
显示所有活跃的部署。
# 启动新部署
$ deploy-agent init my-blog
🚀 部署已初始化: my-blog
步骤 1: 使用 C.R.A.B 设计你的应用
# ... 使用 C.R.A.B 的设计阶段 ...
$ deploy-agent build my-blog
🚀 构建完成!步骤 2: 本地测试
启动开发服务器: cd my-blog && npm run dev
# ... 本地测试 ...
$ deploy-agent push my-blog
🚀 GitHub 仓库已就绪!
输入 'deploy-agent deploy my-blog' 以部署到 Cloudflare
$ deploy-agent deploy my-blog my-blog.sheraj.org
🎉 部署完成!
应用已上线: https://my-blog.sheraj.org
状态存储在:~/.clawdbot/skills/deploy-agent/state/{部署名称}.json
{
"name": "my-blog",
"step": 5,
"status": "已部署",
"created_at": "2026-01-18T08:00:00Z",
"repo_url": "https://github.com/user/my-blog",
"domain": "https://my-blog.sheraj.org"
}
| 工具 | 用途 |
|---|---|
gh |
GitHub 仓库创建与管理 |
wrangler |
Cloudflare Pages 部署 |
git |
版本控制 |
jq |
JSON 解析(用于状态管理) |
Cloudflare 令牌应在 ~/.wrangler.toml 中配置:
[account]
api_token = "你的-cloudflare-令牌"
本节涵盖在 Cloudflare Pages 上部署带有 D1 的 Next.js 应用时的常见问题与修复方法。
| 检查项 | 命令 | 失败时的修复方法 |
|---|---|---|
| Next.js 版本 | npm list next |
npm install next@15.5.2 |
| 包锁文件同步 | rm -rf node_modules package-lock.json && npm install |
提交锁文件 |
| Cloudflare 适配器 | npm list @cloudflare/next-on-pages |
npm install -D @cloudflare/next-on-pages |
| wrangler 已安装 | npm list wrangler |
npm install -D wrangler |
1. package.json
{
"dependencies": {
"next": "15.5.2",
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
"devDependencies": {
"@cloudflare/next-on-pages": "^1.13.16",
"wrangler": "^4.x"
}
}
2. wrangler.toml
name = "my-app"
compatibility_date = "2026-01-18"
compatibility_flags = ["nodejs_compat"]
[[d1_databases]]
binding = "DB"
database_name = "my-db"
database_id = "你的数据库ID"
3. API 路由 (每个文件)
import { getRequestContext } from '@cloudflare/next-on-pages';
export const runtime = 'edge';
export async function GET() {
const { env } = getRequestContext();
const { results } = await env.DB.prepare("SELECT * FROM tasks").all();
return Response.json({ data: results });
}
| 设置项 | 值 |
|---|---|
| 构建命令 | npx @cloudflare/next-on-pages |
| 输出目录 | .vercel/output/static |
| 函数 | 启用(用于 D1 API 路由) |
| 问题 | 错误信息 | 修复方法 |
|---|---|---|
| 锁文件不匹配 | npm ci can only install packages when your package.json and package-lock.json are in sync |
rm -rf node_modules package-lock.json && npm install && git add package-lock.json |
| Next.js 版本 | peer next@">=14.3.0 && <=15.5.2" from @cloudflare/next-on-pages |
降级到 next: "15.5.2" |
| API 路由未使用边缘运行时 | The following routes were not configured to run with the Edge Runtime |
添加 export const runtime = 'edge'; |
| D1 访问模式 | 使用 context.env.DB |
使用 getRequestContext().env.DB |
| 缺少类型定义 | D1 绑定的 TypeScript 错误 | 创建包含 CloudflareEnv 接口的 env.d.ts 文件 |
html {
overflow-x: hidden;
scrollbar-gutter: stable;
}
body {
overflow-x: hidden;
}
DB → 选择你的数据库docs/issues/nextjs-cloudflare-d1-deployment.md