🪡

モノレポでBiome v2を使う時は「"root":false,"extends":"//"」とする

に公開

今行っている個人開発では、モノレポ構成でフォーマッタ/リンタにはBiomeを採用しています。

プロジェクトルートの設定でindentStyle: "spaces"に設定しているにも関わらず、保存する度にtabに切り替わってしまう問題が起きていました。

CLI経由の実行では問題なく、拡張機能経由のフォーマットに問題がありました。
※エディタはVSCodeです。

元々の設定

元は次のように、extendsでプロジェクトルートに存在するbiome.jsonを拡張して個別のbiome.jsonを作成していました。

// biome.json
{
	"formatter": {
		"enabled": true,
		"indentStyle": "space"
	},
    ...
}
// packages/xxx/biome.json
{
  "extends": ["../../biome.json"],
  ...
}

解決策

解決のヒントを見つけるべく公式ドキュメントを読んでいると、次のページが見つかりました。

https://biomejs.dev/guides/big-projects/

どうやらv2から書き方が変わったようです。
(2025/08/10現在、日本語版のドキュメントは古いままなので要注意)

公式ドキュメントに従って次のように書き換えるとうまくいきました

/ biome.json
{
    // リポジトリ全体共通の設定
    "formatter": {
        "enabled": true,
        "indentStyle": "space"
    },
}
// packages/xxx/biome.json
{
    "root": false,
    "extends": "//",
    // この下に上書きしたい設定を書いていく
}

参考資料

https://biomejs.dev/guides/big-projects/

Discussion