Biome v2 リリース
TypeScript コンパイラに依存しない型推論を提供する初の JavaScript と TypeScript リンター、Biome v2 がリリース。TypeScript パッケージをインストールせずに型推論ベースの lint rules を利用可能。
次のコマンドでインストールまたマイグレーションが可能。
npm install --save-dev --save-exact @biomejs/biome
npx @biomejs/biome migrate --writeMulti-file analysis と type inference
v2.0 以前は Biome の lint ルールは 1 つのファイルずつしか操作できなかった。v2 では他のファイルからの情報を必要とするより複雑なルールが可能に。
file scanner がプロジェクト内の全ファイルをスキャンしてインデックス化。noFloatingPromises rule は typescript-eslint の約 75%のケースを検出可能で、パフォーマンスへの影響は大幅に軽減。
file scanner は opt-in のため、v1 から v2 への移行時のパフォーマンスへの影響は最小限。デフォルトではネストした設定ファイルの発見にのみ使用され、フルスキャンはプロジェクトルールが有効な場合のみ実行。
Monorepo Support
package.json ファイルから適切なパッケージ情報を取得し、ネストした設定ファイルをサポート。プロジェクトルートに単一の biome.json または biome.jsonc を持ちつつ、サブディレクトリに任意の数の設定ファイルを配置可能。
ネストした設定ファイルの定義方法:
{
"root": false
}または、ルート設定からの継承:
{
"extends": "//"
}Import Organizer Revamp
同一モジュールからの import のマージ、カスタム順序の設定、export 文の整理が可能。従来の制限が解除され、より柔軟な整理が実現。
// Before
import { util1 } from "./utils.js";
import { util2 } from "./utils.js";
// After
import { util1, util2 } from "./utils.js";カスタム順序での整理例:
import { open } from "node:fs";
import { internalLib1 } from "@company/library1";
import { internalLib2 } from "@company/library2";
import { lib1 } from "library1";Plugins
Linter Plugins の初期実装により、コードスニペットのマッチングと診断レポートが可能。プラグインはソースコードの構造検索を実行するためのクエリ言語であるGritQLで記述。現在はスコープが限定されているが、将来的な拡張の基盤を提供。
Assists
診断なしでのアクション実行を提供する Biome Assist を導入。Import Organizer が assist として再実装され、useSortedKeys によるオブジェクトリテラルのキーソート、useSortedAttributes による JSX 属性のソートが可能。
Improved suppressions
従来の// biome-ignore コメントに加えて、ファイル全体での lint ルールや formatter の抑制を行う// biome-ignore-all をサポート。
範囲指定での抑制も可能:
// biome-ignore-start
// 抑制したいコード
// biome-ignore-endHTML formatter
.html ファイルのフォーマットが可能な実験的実装。Vue、Svelte、Astro などの HTML テンプレート言語への対応準備が進行中。
現在は Prettier の HTML テストスイートの 46/124 を正しくフォーマット可能。デフォルトでは無効のため、手動での有効化が必要:
{
"html": {
"formatter": {
"enabled": true
}
}
}