Prmbr/README-WORKERS.md
2025-08-02 23:27:28 +08:00

3.1 KiB
Raw Permalink Blame History

Cloudflare Workers Deployment Guide

本文档介绍如何将 PRMBR 项目部署到 Cloudflare Workers。

前置要求

  1. Cloudflare 账户
  2. Wrangler CLI 工具
  3. Prisma Accelerate (用于数据库连接)

配置步骤

1. 安装依赖

npm install

2. 设置 Prisma Accelerate

由于 Cloudflare Workers 不支持直接的 PostgreSQL 连接,需要使用 Prisma Accelerate

  1. 访问 Prisma Console
  2. 创建新项目或选择现有项目
  3. 启用 Accelerate 功能
  4. 获取 Accelerate 连接字符串:prisma://accelerate.prisma-data.net/?api_key=your_api_key

3. 设置环境变量

在 Cloudflare Dashboard 中设置以下环境变量:

# 使用 wrangler 命令设置
wrangler secret put NEXT_PUBLIC_SUPABASE_URL
wrangler secret put NEXT_PUBLIC_SUPABASE_ANON_KEY
wrangler secret put DATABASE_URL

或在 Cloudflare Dashboard 中: Workers & Pages > Your Worker > Settings > Environment Variables

4. 构建和部署

# 构建用于 Workers 的版本
npm run build:workers

# 部署到 Cloudflare Workers
npm run workers:deploy

5. 本地开发 (Workers)

# 启动本地 Workers 开发服务器
npm run workers:dev

主要更改

Next.js 配置 (next.config.ts)

  • 启用 output: 'export' 用于静态导出
  • 禁用图像优化 (unoptimized: true)
  • 添加 webpack 配置以排除 Node.js 特定模块

数据库适配

  • 创建 src/lib/prisma-edge.ts 使用 Prisma Accelerate
  • 在需要数据库连接的 API 路由中使用 Edge Runtime

文件结构

├── _worker.js              # Cloudflare Workers 入口点
├── wrangler.toml          # Wrangler 配置
├── src/lib/prisma-edge.ts # Edge 运行时的 Prisma 客户端
└── out/                   # 构建输出目录

限制和注意事项

  1. Runtime 限制: Cloudflare Workers 使用 V8 JavaScript 引擎,不支持完整的 Node.js API
  2. 冷启动: 第一次请求可能较慢
  3. 内存限制: Workers 有内存和 CPU 时间限制
  4. 数据库连接: 必须使用 Prisma Accelerate 或其他兼容的数据库代理
  5. 文件系统: 无法访问文件系统,所有资源必须内联或通过网络获取

故障排除

构建错误

如果遇到构建错误,检查:

  1. 所有依赖是否兼容 Edge Runtime
  2. 是否使用了 Node.js 特定 API
  3. 环境变量是否正确设置

运行时错误

  1. 检查 Cloudflare Workers 日志
  2. 确认数据库连接字符串正确
  3. 验证所有环境变量都已设置

性能优化

  1. 使用 Prisma Accelerate 的缓存功能
  2. 优化数据库查询
  3. 减少冷启动时间通过预热请求

部署检查清单

  • Prisma Accelerate 已配置
  • 环境变量已设置
  • 构建成功完成
  • 本地 Workers 开发测试通过
  • 生产环境部署测试
  • 数据库连接正常
  • 认证流程工作正常

更多资源