# モノレポ

GitBookはモノレポをサポートしています。モノレポとは、複数の論理的プロジェクト（例：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` オプション](https://gitbook-open-v2-preview.gitbook.workers.dev/url/gitbook.com/docs/documentation/ja-gitbook-documentation/getting-started/content-configuration#root) を有効にすると、 `.gitbook.yaml` 設定ファイルとは異なります。最初のものはそれ自体を検索するために使用され、両方が結合されてディレクトリ内の残りのファイルを検索します。 `.gitbook.yaml` 「プロジェクトディレクトリ」に `.gitbook.yaml` が存在しない場合、同期はこのディレクトリにスコープされたデフォルトの設定を使用します。

## プロジェクトディレクトリの更新 <a href="#updating" id="updating"></a>

{% hint style="info" %}
ほとんどの場合、プロジェクトディレクトリを更新するために次の手順を推奨します：

1. 既存のGit同期を無効にする
2. リポジトリ内のファイルをプロジェクトディレクトリに移動する
3. 新しいプロジェクトディレクトリでGit同期を再設定する
   {% endhint %}

場合によっては、最初は1つのスペースとだけ同期する典型的なリポジトリで始め、後に複数スペースと同期するモノレポに移行することを決めたり、プロジェクトディレクトリの名前を変更する必要が生じることがあります。

既存のGit同期でプロジェクトディレクトリを変更するとコンテンツに予期せぬ影響を与える可能性があり、変更は次の同期時（GitBookでの編集またはリポジトリでの新しいコミット）にのみ反映されます。

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

GitBookはプロジェクトディレクトリ内にページとファイルを見つけることを期待します。ファイルがまだリポジトリのプロジェクトディレクトリに移動されていない場合、同期の結果はコンテンツのない空のスペースになります。

次の操作として、すべてのGitBook関連ファイル（マークダウンファイル、README/SUMMARY、アセット）をリポジトリ内の正しい新しい場所、つまりプロジェクトディレクトリに移動するコミットを行うことを推奨します。

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

GitBookは新しいプロジェクトディレクトリに新しいファイルを生成または更新します。GitBookと同期されたファイルは（可能な限り）新しいプロジェクトディレクトリに移動されます；他のシステム部分がこれらのファイルに依存している場合、副作用が生じる可能性があります。
