用途
该技能面向需要在 Cloudflare Workers 上使用 Bun 进行开发、测试与部署的场景。当用户询问“Cloudflare Workers with Bun”“deploying Bun to Workers”“wrangler with Bun”“edge deployment”等主题时使用。
主要能力
- 项目脚手架与依赖安装:使用
bunx create-cloudflare my-worker创建 Workers 项目,bun install安装依赖。 - 本地开发与部署:通过
bun run dev(即wrangler dev)本地开发,bun run deploy(即wrangler deploy)部署。 - 基础 Worker 编写:提供
fetch处理请求、返回 JSON、404 处理等示例,并定义Env接口。 - 使用 Hono 框架:提供路由、D1 查询与插入的示例。
- 存储与数据绑定:KV 读写(含
expirationTtl)、D1 查询/插入/批量事务、Durable Objects 计数器示例、R2 对象读写示例。 - 定时任务:
scheduled处理器与wrangler.toml中crons配置示例。 - 测试:使用
bun:test编写单元测试,使用 Miniflare 进行集成测试。 - 生产构建:使用
Bun.build打包,target设为browser,支持压缩与 sourcemap。 - 环境变量与密钥:
[vars]配置非敏感变量,wrangler secret put设置密钥,并强调密钥不得写入日志。 - 常见错误排查:Bun API 不可用、模块未找到、脚本过大、CPU 时间超限等。
- API 兼容性说明:Workers 支持 Web API(fetch、Response、Request、URL、crypto、TextEncoder),不支持 Bun 专有 API(Bun.file、Bun.serve、bun:sqlite、bun:ffi、fs、child_process)。
使用方式
- 创建项目:
bunx create-cloudflare my-worker,进入目录后bun install。 - 配置
package.json脚本(dev/deploy/build)与wrangler.toml(name、main、compatibility_date、绑定、crons 等)。 - 编写
src/index.ts,按需引入 Hono 或使用原生 fetch 处理器。 - 本地开发:
bun run dev或bunx wrangler dev。 - 测试:使用
bun:test或 Miniflare。 - 构建与部署:
bun run build.ts后bunx wrangler deploy。
适用场景
- 需要在边缘环境部署 Bun 开发工作流的 Cloudflare Workers 项目。
- 使用 KV、D1、R2、Durable Objects 等 Workers 绑定的应用。
- 需要定时任务、环境变量与密钥管理的 Worker。
- 需要 Bun 测试与 Miniflare 测试的 Worker 项目。
限制与安全注意事项
- Workers 运行于 V8,仅支持 Web API,不支持 Bun 专有 API。
- 脚本大小限制 10MB,超限需优化打包;CPU 时间超限需优化或使用队列。
- 脚手架工具会下载并执行远程代码,建议遵循供应链安全实践:Bun 默认禁用安装后脚本,可通过
package.json的trustedDependencies允许特定包;在bunfig.toml配置minimumReleaseAge设置冷却期(如等待 7 天);安装前使用socket package score npm <pkg>或socket npm install <pkg>审计。 - 密钥不得记录到日志(
wrangler tail/ Logpush 会持久化日志)。 - 完整安全配置(Socket CLI 集成、冷却期设置、锁文件校验、CI 强制)需加载
dependency-upgrade技能。 - 高级 KV/D1/R2 模式、队列 Worker、服务绑定需加载
references/bindings.md;打包优化、冷启动降低、缓存策略需加载references/performance.md。