コンテンツにスキップ

大きなプロジェクトでのBiomeの使用方法

Biomeは、モノレポや複数のプロジェクトを含むワークスペースなどの大きなプロジェクトで、適切に使用するためのツールを提供しています。

複数の設定ファイルの使用

Section titled 複数の設定ファイルの使用

Biomeの機能をCLIやLSPで使用する場合、ツールは現在の作業ディレクトリから最も近い設定ファイルを参照します。

設定ファイルが見つからない場合、Biomeは設定ファイルが見つかるまで、上へ上へとディレクトリを移動します。

この機能を活用して、プロジェクトやディレクトリごとに異なるオプションを適用することができます。

例えば、backendディレクトリとfrontendディレクトリを含むプロジェクトがあるとします。

app
├── backend
│ ├── biome.json
│ └── package.json
└── frontend
├── biome.json
├── legacy-app
│ └── package.json
└── new-app
└── package.json

この場合、app/backend/package.jsonからスクリプトを実行すると、Biomeはapp/backend/biome.jsonを設定ファイルとして使用します。

app/frontend/legacy-app/package.jsonまたはapp/frontend/new-app/package.jsonからスクリプトを実行すると、Biomeはapp/frontend/biome.jsonを設定ファイルとして使用します。

extendsオプションを使用して、オプションを複数ファイルに分割することができる。

例えば、以下の要件があるとします:

  • legacy-appディレクトリでは、スペースでformatする
  • backendディレクトリとnew-appディレクトリでは、タブでformatする
  • すべてのディレクトリでは、行幅を120でformatする
  • backendディレクトリでは、追加で他のlint設定を行う

まず、app/biome.jsonに新しい設定ファイルを作成し、共通オプションの設定を行います:

app/biome.json
{
"formatter": {
"enabled": true,
"lineWidth": 120
}
}

ここで、legacy-appディレクトリで別のオプションを使用するため、app/frontend/biome.jsonapp/frontend/legacy-app/移動します:

app/frontend/legacy-app/biome.json
{
"formatter": {
"indentStyle": "space"
}
}

次に、extendsプロパティを使って、app/biome.jsonのすべてのオプションを継承するように設定を加えます:

app/frontend/legacy-app/biome.json
{
"extends": ["../../biome.json"],
"formatter": {
"indentStyle": "space"
}
}

最後に、app/backend/biome.jsonでlinterを有効にします:

app/backend/biome.json
{
"extends": ["../biome.json"],
"linter": {
"enabled": true,
"rules": {
"recommended": true
}
}
}