# モノレポ

GitBookはモノレポをサポートしています。モノレポとは、複数の論理プロジェクト（例: iOSクライアントとWebアプリケーション）を含むリポジトリのことです。

GitBookは、同じリポジトリから複数のディレクトリを複数のスペースと同期できます。スペースでGit Syncを有効にすると、「プロジェクトディレクトリ」を設定できます。これは、次を検索するために使用されます。 `.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 Syncレベルの「プロジェクトディレクトリ」オプションは、 [`root` オプション](https://gitbook-v2-q67etdj25-gitbook.vercel.app/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 Syncを無効にする
2. Gitリポジトリ内のファイルをプロジェクトディレクトリへ移動する
3. 新しいプロジェクトディレクトリでGit Syncを再設定する
   {% endhint %}

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

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

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

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

次の操作は、GitBookに関連するすべてのファイル（Markdownファイル、README/SUMMARY、およびアセット）をリポジトリ内の正しい新しい場所、つまりプロジェクトディレクトリへ移動するコミットにすることをおすすめします。

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

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