モノレポ

GitBook は monorepo をサポートしています。monorepo とは、1 つ以上の論理プロジェクト(例: iOS クライアントや Web アプリケーション)を含むリポジトリのことです。

GitBook は、同じリポジトリ内の複数のディレクトリを複数のスペースと同期できます。スペースで Git Sync を有効にすると、「Project directory」を設定できます。これは、次を検索するために使用されます .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 つのスペースを作成し、それぞれ異なる Project directory に設定できます:

  • packages/styleguide

  • packages/app

  • packages/api

Git Sync レベルの「Project directory」オプションは、 ルート オプション 設定ファイル内の .gitbook.yaml ファイルを探すために使用されます。最初のものは .gitbook.yaml それ自体を探し、次に両方を組み合わせてディレクトリ内の残りのファイルを探します。もし .gitbook.yaml 「Project directory」に存在しない場合、同期はこのディレクトリにスコープされたデフォルト設定を使用します。

マルチスペースリポジトリでディレクトリとアセットがどのように機能するか

同期された各スペースにはそれぞれ独自の Project directoryがあります。GitBook はそのスペースの .gitbook.yaml を設定された Project directory から読み込みます。その後 ルート, README.md, SUMMARY.md、Markdown ファイルとアセットのパスをそのスペースの同期された範囲から解決します。

モノレポでは、同期された各スペースはそれぞれ自身のディレクトリとファイルに限定されます。別のディレクトリから同期された別のスペースは、リポジトリの他の場所のファイルを自動的に継承したり再利用したりしません。

アセットも同じルールに従います。リポジトリレベルの .gitbook/assets フォルダーは、それらのスペースが異なる Project directory を使用している場合、スペース間で自動的に共有されません。

複数のスペースで同じファイルが必要な場合は、次のいずれかの方法を使用してください:

  • 各スペースのディレクトリ内にアセットを配置します。

  • リポジトリを再編成して、各スペースの同期範囲に参照しているアセットを含めます。

モノレポで新しいスペースを設定するときは、まずリポジトリ内に希望するディレクトリ構造を作成してください。GitBook は共有されたマルチスペースのレイアウトを推測したり、共有アセット領域を自動作成したりはしません。

さらに詳しく知るには ルート がスペースの同期範囲内でどのように解決されるかについては、 コンテンツ設定.

具体的な例を示します:

このリポジトリでは、 packages/docs-enpackages/docs-fr は 2 つの別々の同期されたスペースです。 packages/docs-en/.gitbook/assets/logo.png から同期されたスペースでは、自動的に利用できるわけではありません。 packages/docs-fr.

Project directory の更新

circle-info

ほとんどの場合、Project directory を更新するには次の手順を推奨します:

  1. 既存の Git Sync を無効にする

  2. Git リポジトリ内のファイルを Project directory に移動する

  3. 新しい Project directory で Git Sync を再設定する

場合によっては、最初は 1 つのスペースのみと同期する通常のリポジトリから始めたものの、その後、それと同期する複数のスペースを持つモノレポに移行することを決めたかもしれません。あるいは、Project directory の名前を変更する必要があるかもしれません。

既存の Git Sync で Project directory を変更すると、コンテンツに予期しない影響が生じる可能性があります。この変更は、次回の同期時にのみ反映されます(GitBook 上での編集または Git リポジトリでの新しいコミット)。

GitBook は、そのスペースに関する GitBook 関連ファイルがすべて、設定された Project directory 内に存在することを想定します。これには Markdown ファイル、 README.md, SUMMARY.md、およびそのスペースで使用される任意のアセットが含まれます。

次の操作が Git リポジトリからのインポートである場合:

GitBook は Project directory 内でページとファイルを見つけることを想定します。ファイルがまだリポジトリの Project directory に移されていない場合、同期結果はコンテンツのない空のスペースになります。

次の操作として、リポジトリ内のすべての GitBook 関連ファイル(Markdown ファイル、README/SUMMARY、アセット)を正しい新しい場所、つまり Project directory に移動するコミットを行うことを推奨します。アセットが新しい Project directory の外に残っている場合、そのスペースでは解決されるとは期待しないでください。

次の操作が GitBook から Git リポジトリへのエクスポートである場合:

GitBook は新しい Project directory に新しいファイルを生成または更新します。GitBook と同期されたファイルは、新しい Project directory に移動されます(可能な限り)。他のシステム部分がこれらのファイルに依存している場合、副作用が生じる可能性があります。

最終更新

役に立ちましたか?