用途:协助把 Cloudflare Workers 应用迁移到 Bun,涵盖边缘运行时 API 转换、Cloudflare 绑定替换,以及从边缘部署到服务器部署的适配。
主要能力与流程:
- 迁移前分析:检查 wrangler 与 Bun 版本(wrangler --version、bun --version),查看 wrangler.toml 中的 compatibility_flags 与 kv_namespaces、r2_buckets、d1_databases、durable_objects 等绑定。
- 识别 Worker 类型:Service Worker、Module Worker、Scheduled Worker、Durable Objects、Pages Functions。
- 运行时 API 转换:Module Worker 的 export default { fetch } 改为 Bun.serve({ port, fetch });路由可改用 Hono(app.get、app.route、app.notFound),导出 { port, fetch: app.fetch }。
- 绑定替换:KV Namespace 改用 Redis 或 SQLite;R2 Bucket 改用 S3 兼容存储或文件系统;D1、Durable Objects 需替换为常规数据库等。
- 环境变量:wrangler.toml 的 [vars] 改为 .env 文件,代码中仍用 process.env 访问。
- 配置迁移:wrangler.toml 转为 package.json,脚本如 bun run --hot src/index.ts、bun build src/index.ts --outdir=dist。
- 定时任务:scheduled 与 crons 改为 node-cron 的 cron.schedule。
- 测试:Miniflare 改为 bun:test 的 describe/test/expect。
- 部署策略调整:从全局边缘网络改为自托管或云服务器,可用 Docker 容器化。
- 附带迁移清单与关键差异对比(运行时、冷启动、执行时间、存储、成本模型、扩展方式、状态管理)。
限制:资料以英文给出,未提供该技能的版本、安装方式、收费与官方支持信息;具体替换方案需结合项目实际选择,资料未保证性能或迁移结果。