モノレポへの移行
マルチリポジトリ構成からモノレポ構成に移行すると、特に以下の場合に生産性が大幅に向上する可能性があります。
- アプリケーション間でコードを共有するのが難しい場合
- チームのコード作成方法を統一したい場合
モノレポへの移行は困難な場合があります。しかし、慎重に計画すれば、かなりスムーズに進めることができます。
フォルダ構造
マルチリポジトリ構成が以下のようになっているとします。
web (repo 1)
├─ package.json
docs (repo 2)
├─ package.json
app (repo 3)
├─ package.json
`web`、`docs`、`app` の3つのリポジトリがあります。これらに共通の依存関係はありませんが、それらの間で *多くの* コードが重複していることに気づきました。
モノレポでそれらを整理する最良の方法は次のとおりです。
my-monorepo
├─ apps
│ ├─ app
│ │ └─ package.json
│ ├─ docs
│ │ └─ package.json
│ └─ web
│ └─ package.json
└─ package.json
コードの共有を開始するには、内部パッケージパターンを使用できます。その結果、新しい `packages` フォルダが作成されます。
my-monorepo
├─ apps
│ ├─ app
│ │ └─ package.json
│ ├─ docs
│ │ └─ package.json
│ └─ web
│ └─ package.json
├─ packages
│ └─ shared
│ └─ package.json
└─ package.json
モノレポへの移行を計画している場合は、目標とするフォルダ構造の正確なスケッチを作成してみてください。
ワークスペースの設定
アプリケーションが適切なフォルダ構造になったら、ワークスペースを設定して依存関係をインストールする必要があります。ワークスペースの設定に関するセクションが役立ちます。
タスクの処理
ワークスペースが設定されたので、新しいモノレポでタスクを実行する方法を理解する必要があります。以下のセクションがあります。
- Turborepoでタスクを設定する方法。
- 開発タスクを設定する方法
- リンティングを設定する方法
- アプリケーションをビルドする方法
- テストを設定する方法
(ワークスペースと開発タスクへのリンク)