返回更新日志
里程碑

pnpm Monorepo:独立 Node/Workers 应用与 D1/R2

最新模板采用共享领域包与完整页面双副本;Node 使用 Postgres/S3,Workers 使用 D1/R2/Cloudflare Email。配置回归环境变量,新增初始化 CLI、分层测试与发布门禁。

本次条目按模板 main 的 85730ea(2026-10-12)记录当前状态,覆盖 9 月 30 日之后的 monorepo 改造;不改写历史发布说明。

两个应用与共享包

  • apps/web 部署到 Vercel/Docker,apps/web-cloudflare 部署到 Cloudflare Workers。
  • 数据库、认证、API、计费、邮件、存储、配置、i18n、UI 与纯工具提取到 packages/*。
  • 页面仍各自完整保留,pnpm apps:parity 检查对齐;driver、env 与部署配置保留平台差异。
  • 翻译归 packages/i18n,default.json 深合并 mvp.json;MDX 源归各应用的 content/。

Workers 原生资源

  • Workers 从旧 Hyperdrive/Postgres 路径迁为 D1 DB,存储为原生 R2 R2_BUCKET,生产邮件使用 Cloudflare Email Sending。
  • 头像/资产经同源 /files/avatars/* 校验会话与所有权;Node 保留 S3 签名直传。
  • D1 独立 schema、迁移与 SQL 哈希记录;远端迁移先备份/克隆演练,cf:deploy 检查待执行迁移后发布。
  • 当前 main 已移除实验性的 EdgeOne 应用,不把尝试过的部署目标当作稳定模板能力。

配置与起步

  • 删除后台运行时设置,支付、Node 存储、Turnstile 与邮件凭据使用环境变量。
  • muse:init 初始化应用文件、签名密钥与本地迁移;muse:doctor 检查工具链;本地 seed 提供 admin/user 账号。
  • Next.js 依赖升级至 16.4 系列,OpenNext 1.20.9 保留对应补丁;以仓库锁文件为实际安装依据。

验证与升级

  • 新增测试包、覆盖率下限、双应用 parity,以及 unit/API/Playwright 分层流程。
  • 数据库重整为新安装基线;已有生产库需要自行设计增量迁移,不能直接重放新基线。
  • Node/Workers 外部服务仍需真实验收;现有 Cloudflare Playwright 启动配置不替代 Wrangler 绑定验证。

升级顺序见 升级到最新 Monorepo,上线核查见 发布检查清单。