プログラミング ソフトウェア 公開日 2026.05.15 更新日 2026.05.15

Biome とは何か?ESLint + Prettier を1つにまとめた Rust 製ツールの特徴と採用判断

Biome は Rust 製の `Linter + Formatter』 統合ツールで、ESLint + Prettier の組み合わせを1つに置き換えることを目指しています。圧倒的な速度、設定の薄さ、JSON / CSS / GraphQL なども含む統一サポートが特徴で、特に CI 時間と設定地獄からの脱出を狙うチームに人気です。仕組みと採用判断軸を整理します。

先に要点

  • Biome(旧 `Rome Tools』 のフォーク版)は、Linter と Formatter を1つにまとめた Rust 製ツール。`ESLint + Prettier』 の置き換えを目指して開発されている。
  • 最大の特徴は 圧倒的な速度。Rust 製で並列処理が効くため、`数千ファイルのプロジェクトでも数秒で lint + format 完了』 のような体感差が出る。`pre-commit が痛い』 `CI で format チェックに分単位かかる』 系の悩みを解消する。
  • ` 1ツールで設定が完結』。`.eslintrc / .prettierrc / .editorconfig が3つに分かれていた世界』 を、`biome.json 1ファイル』 にまとめられる。プラグインや preset の沼に入る必要がない。
  • 万能ではない。` ESLint の豊富なプラグインエコシステム』 と完全互換ではない。Tailwind / Vue / Svelte / 特殊な独自ルールが必要なケースでは、ESLint との併用 / ESLint 残存も視野に入れる。

Biome ってよく聞くけど、結局 ESLint と何が違うの? Prettier はそのまま使えるの? 設定地獄から抜けたい』 ── JavaScript / TypeScript 開発で lint + format の設定で消耗する時間』 にうんざりしたチームから、急速に支持を集めているのが Biome です。

ざっくり言うと、Biome は ESLint と Prettier を1つの Rust 製ツールにまとめた』</strong> プロジェクトです。 速度・設定の薄さ・統一感を売りにしていて、これ1本で lint + format が済む』 という体験を提供します。BunTailwind v4 の Oxide のように、`Web 開発の足回りを Rust で書き直す』 流れの代表的な道具のひとつです。

この記事では、2026年5月時点の Biome の状況をベースに、何ができるか・ESLint + Prettier との違い・どう使うか・採用判断軸 を整理します。

Biome が解決した問題

Biome の登場背景には、`ESLint + Prettier 時代』 の積み上がった課題があります。

①設定が散らばる

`.eslintrc.js』 `.prettierrc』 `.eslintignore』 `.prettierignore』 `.editorconfig』 …。`ファイル数が多くて、どれが何を制御しているのか分かりにくい』。

② ESLint × Prettier の衝突

` ESLint がスタイルを直そうとして、Prettier が逆に直す』 系のループ。`eslint-config-prettier』 で抑える必要があり、Knowledgeが必要だった。

③ 速度

大規模リポジトリで `eslint --fix』 が分単位、`prettier --write』 もそれなりに時間がかかる。`pre-commit hook が遅すぎる』 ストレス。

④ プラグインの依存地獄

`@typescript-eslint / eslint-plugin-react / eslint-plugin-import / ...』 と、`プラグインのバージョン整合に毎月時間を取られる』。

Biome は ` Linter と Formatter を1つに統合し、Rust で書き直し、設定を最小化する』 という方針で、これらをまとめて解消することを目指しました。

Biome の中身 — 速さと統合の正体

`なぜ速くて、なぜ設定が薄くなるのか』 を整理します。

Rust 製の高速パーサ

ファイル数 × ルール数で計算量が膨らむ Lint 処理を、並列処理 + ネイティブ速度 で実行。ESLint の Node.js JIT に対して数倍〜数十倍の速度が出る場面が多い。

統合されたパーサ

` Lint も Format も同じパーサを使う』 ので、`Prettier と ESLint で別々にパースして二度手間』 が起きない。`ASTの解釈に揺れがない』 のが正確さにも効く。

単一の設定ファイル

`biome.json』(または `.toml』)で lint + format + import 整理を全部設定。`複数ファイルを行ったり来たり』 が消える。

前提のシンプル化

` Prettier の哲学を継承』 → スタイルは基本固定、設定で選べるのは最小限。`チームごとにルールで揉める』 時間が減る。

`設定の自由度を減らすことで、運用負担を減らす』 という Prettier 系の発想を、Linter と Formatter にまたがって徹底したのが Biome の根っこの設計判断です。

基本の使い方

導入と使い方は驚くほど短く済みます。

# インストール
npm install --save-dev --save-exact @biomejs/biome

# 初期化
npx @biomejs/biome init

# Lint と Format を実行
npx @biomejs/biome check ./src

# 自動修正
npx @biomejs/biome check --write ./src
// biome.json(自動生成される)
{
  "$schema": "https://biomejs.dev/schemas/2.0/schema.json",
  "files": { "ignoreUnknown": false },
  "formatter": { "enabled": true, "indentStyle": "tab" },
  "linter": { "enabled": true, "rules": { "recommended": true } },
  "javascript": { "formatter": { "quoteStyle": "single" } }
}

`biome check』

`lint + format + import 整理』 を1コマンドで実行。`どこに問題があるか』 を見るとき。

`biome check --write』

` 自動修正可能なものをまとめて修正』。`prettier --write && eslint --fix』 の置き換え。

`biome format』 / `biome lint

個別にも実行可能。CI で `lint だけ走らせる』 のような細かい使い方ができる。

エディタ統合

VS Code / JetBrains / Neovim 等に公式プラグインがある。` 保存時に自動 format + lint が ESLint + Prettier より体感速い。

使い始めて当日に効果が見える』 のが Biome の特徴で、設定で1日かかる』 系の苦痛と無縁です。

ESLint + Prettier との比較

3つを並べると、それぞれの立ち位置がはっきりします。

ESLint Prettier Biome
役割 Linter Formatter Linter + Formatter
実装言語 JavaScript JavaScript Rust
速度 普通 普通 圧倒的に速い
設定ファイル `.eslintrc.*』 + `.eslintignore』 `.prettierrc.*』 + `.prettierignore』 `biome.json』 1つ
プラグインの豊富さ ◎(10年以上の蓄積) ○(各種統合) △(発展中)
独自ルールの作成 柔軟 限定的
多言語サポート JS / TS / JSON / Markdown(プラグイン経由) JS / TS / CSS / HTML / GraphQL / YAML JS / TS / JSX / TSX / JSON / CSS / GraphQL(増加中)
VSCode 統合 ○(高速)
競合の解消 ` eslint-config-prettier』 が必要 不要(1ツールなので衝突しない)

要点は 速度と設定のシンプルさを取るなら Biome、プラグインの豊富さを取るなら ESLint + Prettier』</strong> という構図です。ESLint プラグインで Tailwind や独自ルールを多数使っている』 案件では Biome に完全移行できない一方、`シンプルな TS / JS プロジェクト』 では Biome の体験が圧倒的に良い、という棲み分けが見えてきます。

どの程度 ESLint と互換性があるか

`置き換えられるか』 を判断するうえで重要なのが、ルール互換性です。

主要 ESLint ルールの大半をカバー

`@typescript-eslint』 系の核となる型関連ルール、`no-unused-vars』 などの基本ルールは Biome 側にも実装済み。` 標準的な lint 要件は満たせる ことが多い。

React / JSX 関連

`react/jsx-no-undef』 系の代表的なルールはサポートあり。Hook ルール(`react-hooks/rules-of-hooks』)もある。

特殊なプラグイン

`eslint-plugin-import』 の細かい設定、`Tailwind ESLint プラグイン』 のような特化系、独自社内ルールなどはまだ ESLint のままにすべき場合がある。

共存可能

` Biome を format + 基本 lint、ESLint を `Biome に対応がないルールだけ』』 という併用構成も可能。`完全置き換え』 と `併用』 を段階で進められる。

完全に ESLint を捨てる』 までは行かないチームでも、Format は Biome に統一、Lint は ESLint と Biome を混在』 だけで体感速度は十分改善します。

採用判断のチェックリスト

`いま Biome を入れるか』 の判断材料です。

読み込み中...

一気にゼロから移行』 ではなく、<strong> Format → 基本 Lint → 必要なら ESLint 残存』 の3段階で進めるのが現実的 です。

どこで詰まりやすいか

実務で踏みやすいポイントを挙げておきます。

①Prettier との微妙なスタイル差

` 改行位置』 `引数のラップ方式』 などで Prettier と異なる挙動の箇所がある。` 一度 `biome check --write』 でフォーマットを揃え、コミットしてから運用に乗せる』 のが安全。

② プラグイン非対応

` eslint-plugin-tailwindcss』 のようなニッチで便利なプラグインに完全な代替はまだない。`Biome + その項目だけ ESLint』 の併用が現実的。

③ 一部のファイル形式

Vue / Svelte / Astro のコンポーネントファイル(`.vue』 `.svelte』 `.astro』)は対応が限定的。`これらを使う案件では当面 Prettier + ESLint も残す』 が現実的。

④ チームへの周知

` ESLint + Prettier が長年標準だった』 ので、`Biome に置き換える』 提案には説明コストがかかる。`速度差の実測値』 を見せると合意形成が早い。

`既存 ESLint プラグインを完全互換にはできない』 のは、Biome の根本的な制約として認識しておくのが大事です。

AI 時代の Biome

AI 連携の文脈でも Biome の特徴は効きます。

速いフィードバックループ

AI でコードを書く → `lint + format で即フィードバック』 を回す時代。` Biome の数倍の速度差が、開発者体験にそのまま効く

CI の高速化 × トークン課金

AI で `CI 実行回数』 が増えると、`CI 時間 × Vercel / Cloud 課金』 が積み上がる。Biome の速度はそのままコスト圧縮になる。`Vercel の高額請求対策』 でも触れた話と地続き。

AI が出すコードのスタイル統一

AI が複数回出力したコードの `スタイルが揺れる』 のを、保存時に Biome が即整形してくれる。`AI 出力 + 即 format』 がデフォルトの開発体験になる。

小さな設定で AI に教えやすい

`biome.json 1ファイル』 を AI に渡すだけで `この CI でどうフォーマットされるか』 を伝えられる。`複雑な ESLint 設定を読ませる』 トークンコストを減らせる。

`速度 × 単一設定 × Rust エンジン』 という Biome の特徴は、AI 開発の高頻度サイクルにそのままハマる、という流れがあります。

Biome に関するよくある質問

Q. Biome は Prettier の完全互換ですか?

A. 概ね互換だが、細部に違いがあります』</strong>。Biome 公式もPrettier 互換を目標にしている』 とアナウンスしていて、実際に大半のケースで差が出ません。`改行位置やラップ方式が違う』 箇所があるので、移行時に一度全体を再 format するのが基本です。

Q. ESLint を完全に置き換えられますか?

A. recommended 中心の構成なら可能、特殊プラグイン依存なら困難』</strong>です。@typescript-eslint / react-hooks / import』 程度の典型構成は Biome でカバーできますが、`Tailwind や独自社内ルール』 を多用しているなら、ESLint の併用 / 残存が現実的です。

Q. Vue / Svelte / Astro でも使えますか?

A. 対応は限定的です』</strong>。.vue』 .svelte』 .astro』 ファイルの完全サポートはまだ発展中で、scripts 部分だけ Biome、template は Prettier』 のような分担になります。React 中心』 のプロジェクトでは問題なく使えます。

Q. CI に組み込むときの推奨は?

A. biome ci』 コマンドを使うのが推奨です。CI 向けに最適化された出力形式と終了コードを返すサブコマンドで、`format / lint / import 整理』 をまとめて1コマンドで検証できます。

Q. ESLint と Biome を併用する場合の注意点は?

A. Format は片方に統一する』</strong> のが鉄則です。Biome で format、ESLint で lint のみ』 のように役割を分けないと、`ESLint がスタイルを直そうとして Biome と衝突する』 ループが起きます。

Q. Bun や pnpm との相性は?

A. 良好です。Bun のスクリプト経由でも、pnpm のモノレポでも、biome check』 をそのまま呼べます。どのパッケージマネージャでも使える』 のは Biome 側の設計の良さです。

Q. 移行コストはどのくらい?

A. 半日〜1日でformat だけ Biome に切り替え』 が可能です。lint も完全移行』 までやるなら、ESLint プラグインの棚卸しで数日〜1週間かかる場合があります。段階移行を許容できるか』 で計画が変わります。

参考リンク

あとで見返すならここで保存

読み終わったあとに残しておきたい記事は、お気に入りからまとめて辿れます。