【バイオーム】

Biome とは?

最終更新:
💡 リントもフォーマットも、これ一本でまるっとおまかせ

JavaScript/TypeScriptなどのリンターとフォーマッターを1つにまとめたRust製の開発ツール。ESLintとPrettierの主な役割を1つの設定で扱える。

📌 このページのポイント
Biome = ESLint + Prettier を統合 ESLint コードの問題を検出 (リンター) + Prettier コードを整形 (フォーマッター) Biome リント + フォーマット 統合 Rust製 / 高速 特徴 整形 約35倍※ 設定ファイル1つ 移行コマンド付き
Biomeの統合イメージ(※公式サイトのPrettierとの比較ベンチマーク。速度差は環境で変わる)
ひよこ ひよこ
ESLintとPrettierを別々に使ってるんだけど、Biomeに変えたほうがいいの?
ペンギン先生 ペンギン先生
必須ではないよ。設定ファイルがまとまって、実行も速くなりやすいのが利点だね。ただ、今の設定やプラグインがそのまま再現できるとは限らないから、まずは試しに動かして差分を確認してから決めよう
ひよこ ひよこ
なんでそんなに速いの?
ペンギン先生 ペンギン先生
Rustで書かれていて、ネイティブのプログラムとして動くのが理由の1つだよ。公式サイトでは、約17万行のコードの整形でPrettierより約35倍速かったというベンチマークを載せている。ただし速さの差はコードの量やマシンで変わるから、自分のプロジェクトで測ってみるのが確実だね
ひよこ ひよこ
移行って大変じゃない?設定とか全部書き直し?
ペンギン先生 ペンギン先生
biome migrate eslint や biome migrate prettier というコマンドで、既存の設定をある程度自動で変換できるよ。ただしYAML形式の設定は変換できないし、ルールの細かいオプションが同じ動きにならないこともある。変換後に差分を見て確認しよう
ひよこ ひよこ
ESLintのプラグインとかも使えるの?
ペンギン先生 ペンギン先生
ESLintのプラグインはそのままでは使えないんだ。Biomeには主要なルールが組み込まれていて、独自ルールはGritQLという言語で書くBiome用のプラグインで追加する仕組みになっているよ
ひよこ ひよこ
フォーマットの結果はPrettierと同じになるの?
ペンギン先生 ペンギン先生
公式サイトではPrettierとの互換性を97%としているから、ほとんど同じだけど完全一致ではないよ。それにBiomeの既定のインデントはタブで、Prettierはスペースなんだ。移行するときは一度全体を整形して、差分をまとめてレビューすると安心だね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Biome」って出てきたら「リンターとフォーマッターを1つにまとめた高速なツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Biome」 = 「2番目のRome」を表す造語
💬 もとはRomeというプロジェクトで、2023年8月に同じ中心メンバーが公式のフォークとしてBiomeを始めたんだ。公式ブログによると「2つ目のRomeを作りたい」という思いから、BisとRomeを合わせた名前なんだよ

参考資料

← 用語集にもどる