跳转到内容
搜索文档

高级设置

最后更新 查看 MarkdownAgent 设置

Monorepos

Monorepo 是包含多个应用程序的单个仓库。此设置有以下几个优点:

  • 简化依赖管理:使用 pnpm workspacessyncpack 等工具,从单一位置管理所有 Worker 和共享包的依赖。
  • 代码共享和复用:通过创建共享包,轻松在 Worker 之间共享通用逻辑、类型和工具。
  • 原子提交:影响多个 Worker 或共享库的更改可以一起提交,使历史记录更易于理解并降低不一致的风险。
  • 一致的工具链:在所有项目中应用相同的构建、测试、lint 和格式化配置(例如,通过 Turborepo 进行任务编排和 packages/ 中的共享配置),确保 Worker 之间一致的工具链和代码质量。
  • 更轻松的重构:在单个仓库内跨多个 Worker 或共享包进行代码重构要容易得多。

Worker monorepo 示例:

快速入门

要设置 monorepo 工作流:

  1. Workers & Pages 仪表板中找到与项目关联的 Worker。
  2. 将 monorepo 连接到仓库中的每个 Worker。
  3. 为每个 Worker 设置根目录,指定其 wrangler.jsonc 的位置以及构建和部署命令应运行的位置。
  4. 可选:为每个 Worker 配置唯一的构建和部署命令。
  5. 可选:为每个 Worker 配置构建监视路径以监控特定路径的更改。

当 monorepo 有新提交时,如果更改在其包含的监视路径内,将为每个 Worker 触发新的构建和部署。你还可以在 GitHub 中通过检查运行或在 GitLab 中通过提交状态查看与仓库关联的每个构建的状态。

示例

在示例 ecommerce-monorepo 中,应为 product-serviceorder-servicenotification-service 创建 Worker 项目。

应在所有 Worker 项目中添加与 ecommerce-monorepo 的 Git 连接。如果你使用 monorepo 工具(如 Turborepo),可以为每个 Worker 配置不同的部署命令,例如 turbo deploy -F product-service

将每个 Worker 的根目录设置为其 Wrangler 配置文件所在的位置。例如,对于 product-service,根目录应为 /workers/product-service/。可选:你可以添加构建监视路径以优化构建。

ecommerce-monorepo 有新提交时,如果更改在其包含的监视路径内,将使用该 Worker 配置的命令触发每个 Worker 的构建和部署。

  • ecommerce-monorepo/
    • workers/
      • product-service/
        • src/
        • wrangler.jsonc
      • order-service/
        • src/
        • wrangler.jsonc
      • notification-service/
        • src/
        • wrangler.jsonc
    • packages/
      • schema/
    • README.md

Wrangler Environments

你可以通过完成以下步骤将 Wrangler Environments 与 Workers Builds 一起使用:

  1. 如果尚未创建,请通过 Wrangler 部署以在仪表板上创建环境的 Worker。
  2. 找到环境的 Worker。它们通常命名为 [Worker 名称] - [环境名称]
  3. 将仓库连接到每个环境的 Worker。
  4. 在每个 Worker 中,编辑 Wrangler 命令以在构建配置中的部署命令和非生产分支部署命令(如适用)中包含标志 --env: <environment name>

当仓库中检测到新提交时,将为每个关联的 Worker 触发新的构建/部署。

示例

假设你有一个名为 my-worker 的 Worker,并想在 wrangler.jsonc 中设置两个环境 stagingproduction。如果尚未部署,可以使用命令 wrangler deploy --env stagingwrangler deploy --env production 为每个环境部署 my-worker

在 Cloudflare 仪表板中,你应该找到两个 Worker my-worker-stagingmy-worker-production。然后,将 Worker my-worker 的 Git 仓库连接到两个环境 Worker。在每个环境 Worker 的构建配置中,将部署命令编辑为 npx wrangler deploy --env stagingnpx wrangler deploy --env production,非生产分支部署命令分别编辑为 npx wrangler versions upload --env stagingnpx wrangler versions upload --env production

这篇文档对您有帮助吗?