Cloudflare 中文文档
Pages
编辑这个页面
跳转官方原文档
Set theme to dark (⇧+D)

Monorepos

虽然有些应用程序是由单个资源库构建的,但 Pages 也支持具有更复杂设置的应用程序。单存储库是一个拥有多个子目录的存储库,每个子目录都包含自己的应用程序。

​​ 设置

你可以使用同一个版本库创建多个项目,与创建任何其他 Pages 项目的方式相同。你可以选择更改项目的构建命令和/或根目录,告诉 Pages 你希望构建命令在哪里运行。即使连接到同一个版本库,所有项目名称也必须是唯一的。

​​ Builds

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

Monorepo 示例图

以上面的 my-monorepo 为例,它包含两个关联的 Pages 项目(marketing-appecommerce-app)及其列出的依赖项。默认情况下,如果更改了 marketing-app 项目目录中的文件,那么也会触发 ecommerce-app 项目的联编,即使 ecommerce-app 及其依赖关系未发生变化。为避免重复编译,你可以包含或排除 build watch pathsbranches 来指定 Pages 是否应该跳过某个项目的编译。

​​ Git 整合

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

GitHub 会为每个项目显示单独的注释,其中包含更新的项目和部署 URL(如果该分支有关联的拉取请求)。

​​ GitHub 检查运行和 GitLab 提交状态

如果你的版本库关联了多个项目,你的 GitHub 检查运行 Gitlab 提交状态 会在版本库中显示如下:

GitHub检查运行
GitLab提交状态

如果由于任何原因(如 CI 跳过、构建观察路径或分支部署控制)导致构建跳过,则不会显示检查运行/提交状态。

​​ Monorepo 管理工具:

虽然 Pages 没有为 monorepos 的依赖关系管理提供专门的工具,但你可以选择使用其他工具来帮助管理你的版本库。对于简单的子包管理,你可以使用 npm pnpm Yarn 工作区等工具。你还可以使用更强大的工具,如 Turborepo NX Lerna 来额外管理依赖关系和任务执行。

​​ 限制