BiomeでESLint + Prettierを一本化したら、管理がかなり楽になった話

ESLint と Prettier の設定が増えて管理が面倒になっていたプロジェクトに Biome を導入したところ、設定ファイルが1つにまとまり、リントと整形の速度もかなり速くなりました。

🙌 結論から

ESLint と Prettier を両方設定していたプロジェクトに Biome を導入したところ、設定ファイルが biome.json 1つにまとまり、リントと整形の実行速度がかなり速くなりました!

個人開発のプロジェクトで試し始めたのですが、チームのコードにも入れたくなる完成度でした(^_^)

設定のシンプルさと速さ、両方が手に入るのが本当にうれしいですね。✨

…最近はバックエンドエンジニアがメインなのに、JS系が楽しくてこっちばっかり触ってしまう…笑

💡 Biome とはなにか

Biome は、Rust で書かれた高速なリンター・フォーマッターです。

ESLint や Prettier の代替として使えて、1つのツールでリントと整形の両方をカバーできます。

公式サイトによると ESLint より最大 35 倍速いとのことで、マジで???と思いましたが、実際に動かしてみると確かにかなり速かったです(´・ω・`)

設定ファイルは biome.json 1つだけなので、.eslintrc.js.prettierrc.eslintignore などが乱立していたプロジェクトに入れると、管理するファイルがかなりすっきりします。

👀 導入してみた

インストールは npm 1コマンドで完結します。

npm install --save-dev --save-exact @biomejs/biome
npx biome init

biome init を実行すると biome.json が自動生成されます。最低限の設定はこんな感じです。

{
  "$schema": "https://biomejs.dev/schemas/1.9.0/schema.json",
  "organizeImports": {
    "enabled": true
  },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true
    }
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "indentWidth": 2
  }
}

package.json のスクリプトに追加しておくと使いやすくなります。

{
  "scripts": {
    "lint": "biome lint .",
    "format": "biome format --write .",
    "check": "biome check --write ."
  }
}

biome check はリントと整形を同時に実行してくれるので、これ1本でまかなえるのがかなり便利です!

✨ 使ってみた感想

一番びっくりしたのは実行速度ですかね。

以前 ESLint + Prettier でリントと整形を実行していたプロジェクトと比べると、体感で 3〜4 倍くらい速い感じがします(・∀・)

ESLint の設定を移行するときは、多少手間がかかる場面もありました。カスタムルールが多いプロジェクトでは、Biome に対応していないプラグインが出てくることもあります。

ただし個人開発や比較的シンプルな構成のプロジェクトなら、移行コストはかなり低いと思います。

VSCode の拡張機能も公式から出ており、保存時に自動で整形が走る設定にできるので、けっこう開発が快適になりました!

パパ系Webエンジニア〜愛用ガジェット一覧 🛍️

この記事を書いている作業環境のガジェットを楽天ROOMにまとめています ✨ 在宅エンジニアのデスク作りの参考にどうぞ 🙌

👍 まとめ

Biome は、ESLint + Prettier の設定を1つにまとめつつ、速度も大幅に改善できるツールです。

個人開発プロジェクトや新規プロジェクトへの導入なら、コストはかなり低いです。

ESLint の細かいルール設定が必要なプロジェクトへの移行は慎重に検討が必要ですが、シンプルな構成なら迷わず試してみる価値があります(^o^)/

「設定ファイルを管理する手間を減らしたい」「CIやコミット前のチェックを速くしたい」という方は、ぜひ一度試してみてください!✨