跳转到内容
搜索文档

Monorepo

最后更新 查看 MarkdownAgent 设置

虽然一些应用从单个仓库构建,Pages 也支持更复杂设置的应用。Monorepo 是包含多个子目录的仓库,每个子目录包含各自的应用。

设置

你可以使用同一仓库创建多个项目,方式与创建任何其他 Pages 项目相同。你可以更改项目的构建命令和/或根目录,以告知 Pages 构建命令的运行位置。即使连接到同一仓库,所有项目名称也必须唯一。

构建

将 git 仓库连接到 Pages 时,默认情况下仓库中任何文件的更改都会触发 Pages 构建。

Monorepo 示例示意图

以上面的 my-monorepo 为例,它有两个关联的 Pages 项目(marketing-appecommerce-app)及其列出的依赖项。默认情况下,如果你更改 marketing-app 项目目录中的文件,也会触发 ecommerce-app 项目的构建,即使 ecommerce-app 及其依赖项未更改。为避免此类重复构建,你可以通过构建监视路径分支的包含和排除规则,指定 Pages 是否应跳过某个项目的构建。

Git 集成

在 Git 仓库中为每个项目创建单独的 Pages 项目后,除非在构建配置中另有指定,否则每次 Git 推送都会为所有连接的项目发出新的构建和部署。

如果 branch 关联了 Pull Request,GitHub 将为每个项目显示单独的评论,其中包含更新的项目和部署 URL。

GitHub check runs 与 GitLab commit statuses

如果仓库关联了多个项目,GitHub check runGitlab commit status 在仓库中将如下所示:

GitHub check run(检查运行)GitLab commit status(提交状态)

如果构建因任何原因被跳过(例如 CI Skip、构建监视路径或分支部署控制),check run/commit status 将不会出现。

Monorepo 管理工具

虽然 Pages 不提供 monorepo 依赖管理的专用工具,你可以选择引入额外工具来管理仓库。对于简单的子包管理,可以使用 npmpnpmYarn workspaces 等工具。你也可以使用 TurborepoNXLerna 等更强大的工具来管理依赖和任务执行。

限制

  • 必须启用 Build System V2 或更高版本才能使用 monorepo 支持。
  • 每个仓库最多可配置 5 个 Pages 项目。如需提高此限制,请联系 Cloudflare 账户团队或使用限制提升请求表单

这篇文档对您有帮助吗?