🧬
Monorepo環境でBiomeを使用したときにVSCodeの保存時フォーマットが効かない
問題
バックエンドはGolang、フロントエンドはTypescript(React)のMonorepo環境でBiomeを導入しました。
project
├── backend
│ └── xxx.go
└── frontend
├── biome.json
└── package.json
BiomeのVSCode拡張機能もインストールし、settings.json
にも下記の記載をしている状態です。
settings.json
{
"editor.defaultFormatter": "biomejs.biome",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": [
"quickfix.biome"
]
}
その状態でCLIからのlintやformatは動くのですが、保存時に自動でフォーマットを行う処理が動いてくれません。
厳密にはフォーマット処理は走っているのに、biome.json
の設定が適用されておらずデフォルトの設定が使われているっぽいです。困りました。
結論
プロジェクトのルートディレクトリにbiome.json
のシンボリックリンクを作成することで解決しました。
↓こんな感じです
project
├── backend
│ └── xxx.go
├── frontend
│ ├── biome.json
│ └── package.json
└── biome.jsonのシンボリックリンク ←new!
Biome公式の記載の通り、BiomeのVSCode拡張機能は、ワークスペースのルートディレクトリからbiome.jsonを読み込もうとするみたいです。
ルートディレクトリに存在しなかったら下の階層まで探索するとかはしてくれません。複数個biome.jsonがあったらどうすんのってなりますもんね。
というわけでルートディレクトリにシンボリックリンクを作ることによって拡張機能が見つけられるようにしてあげました。
フロントエンドのみで使用するものをルートに置くのはちょっと気持ち悪いですが、現状この対策が最も安パイな気がします。
よりよい解決策をお持ちの方はコメントお待ちしております🙇
Discussion