单仓库(Monorepos)

GitBook 支持 monorepo。monorepo 是包含多个逻辑项目(例如 iOS 客户端和 Web 应用)的代码仓库。

GitBook 可以将同一仓库的多个目录与多个空间同步。在某个空间启用 Git 同步时,可以配置一个“项目目录”。它将用于查找 .gitbook.yaml 文件,以确定要与该空间同步的目录。

仓库结构示例:

/
  package.json
  packages/
     styleguide/
        .gitbook.yaml
        README.md
        SUMMARY.md
     app/
        README.md
        SUMMARY.md
     api/
        .gitbook.yaml
        README.md
        SUMMARY.md

在此示例中,可以在 GitBook 上创建 3 个空间,并为它们配置不同的根目录:

  • packages/styleguide

  • packages/app

  • packages/api

在 Git 同步层级的“项目目录”选项不同于 root 选项.gitbook.yaml 配置文件中。第一个用于查找 .gitbook.yaml 自身,然后两者结合用于查找目录中的其他文件。如果在“项目目录”中不存在 .gitbook.yaml ,则同步将使用针对该目录作用域的默认配置。

更新项目目录

在大多数情况下,我们建议按以下步骤更新项目目录:

  1. 禁用现有的 Git 同步

  2. 将 Git 仓库中的文件移动到项目目录

  3. 使用新的项目目录重新配置 Git 同步

在某些情况下,你可能一开始将典型仓库与单个空间同步,但后来决定过渡为一个有多个空间同步的 monorepo;或者可能需要重命名项目目录。

在现有的 Git 同步上更改项目目录可能会对内容产生意想不到的影响,更改仅会在下一次同步(在 GitBook 上的编辑或 Git 仓库中的新提交)时被传播。

如果下一步操作是从 Git 仓库导入:

GitBook 将期望在项目目录中找到页面和文件。如果文件尚未被移动到仓库的项目目录中,同步的结果将是一个没有内容的空空间。

我们建议下一步操作是提交,将所有与 GitBook 相关的文件(Markdown 文件、README/SUMMARY 和资源)在仓库中移动到它们在项目目录中的正确新位置。

如果下一步操作是从 GitBook 导出到 Git 仓库:

GitBook 将在新的项目目录中生成或更新文件。与 GitBook 同步的文件将被移动到新的项目目录(尽最大努力);如果系统的其他部分依赖于这些文件,可能会导致副作用。

最后更新于

这有帮助吗?