#sfc (1)
問題
Biome v2.4.7 で Vue SFC の <template> 部分が biome format でフォーマットされない。
解決策
biome.json に3つの設定が必須:
{
"files": {
"includes": ["**", ".dotdir/**"]
},
"html": {
"experimentalFullSupportEnabled": true,
"formatter": {
"enabled": true
}
}
}
重要なポイント
experimentalFullSupportEnabled: true— v2.3で追加。Vue/Svelte/Astro の SFC内の全パート(template, script, style)の完全な解析を有効化。これなしでは<script>と<style>のみ処理html.formatter.enabled: true— デフォルトはfalse。biome formatコマンドが HTMLを処理するための明示的な有効化が必要。biome check --writeはlint経由で動くため気づきにくいfiles.includesにドットディレクトリを明示 —.vitepress/**のようなドットで始まるディレクトリはデフォルトスキャン対象外
既知の制限
- 複雑な TypeScript ジェネリクス(
ref<InstanceType<typeof X>>)でパースエラーが発生するケースあり v-for="item of items"のof構文がパースエラーになる(inは問題なし)- パースエラーが出るファイルはフォーマットがスキップされる(ファイルは壊れない)
formatWithErrors: trueは危険 — パースエラー時にSFCタグが消える・コードが壊れるリスクがある