Tech

Tips

Prettier + ESLint を卒業して Biome を導入する手順と所感

2025年9月23日

2025年9月23日

Prettier + ESLint を卒業して Biome を導入する手順と所感

こんにちは、けいこんぐらです!

今回は、Biome を導入する手順とその所感を書きたいと思います 📝

今までは PrettierESLint を組み合わせて使用するのが一般的だったように思うのですが、Biome はこれらのツールの機能を統合して提供しています。

Biome 気になってる・聞いたことはあるけど、どんな感じか知りたい!という方の参考になれば幸いです。

インストール、設定、GitHooks あたりの手順を紹介できればと思います 🚀

Biome とは?

こちらですね!

Biome

フォーマット、リントなどが一瞬で完了します!

https://biomejs.dev

Biome

改めて説明すると、Biome は以下のための高性能なフォーマッターとリンターを提供するツールです。

  • JavaScript
  • TypeScript
  • JSX
  • JSON
  • CSS
  • GraphQL

従来は、Prettier と ESLint を組み合わせて使用する都合上、設定を 2 重で行う必要があったり、ものによっては競合が発生したりといった問題がありました 😢

それらをまるっと解決してくれるのが Biome です。(全体的にパフォーマンスも良くなっているらしい)

まあ、一番何が嬉しいかというと、設定を一元管理できることですね。

まず所感

良かった点

  • 設定を一元管理できる
    • 設定がシンプル
    • 公式ドキュメントも 1 箇所を見るだけでいい
    • 別にルールをカスタマイズしなくても、いい感じに規制してくれる
  • 速い

微妙?な点

  • ルールをカスタマイズしたい場合、実験的なものとかも割とあるイメージ

1 年近く使用してみてますが、個人的には今のところ、そこまで不満は感じてません 👌

個人とか、小・中規模で普通に開発する分には十分かなと!

導入手順

ここまで読んで、Biome を使ってみたい!と思った方は、ぜひ以下の手順で導入してみてください!

インストール

package.json が含まれる Node.js の環境下で実行してください!

Terminal
npm install --save-dev --save-exact @biomejs/biome

設定

実行したら、biome.json が生成されます

Terminal
npx @biomejs/biome init

私は、こんな感じで設定して使っています!

  • 好みのフォーマット設定
  • TailwindCSS をよく使用するので、見栄えを良くするためにクラスをソートする設定
  • Git 管理しているファイルに対してのみ実行する設定
biome.json
{
  "$schema": "https://biomejs.dev/schemas/2.2.4/schema.json",
  "vcs": {
    "enabled": true,
    "clientKind": "git",
    "useIgnoreFile": true
  },
  "files": {
    "ignoreUnknown": false
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "tab",
    "indentWidth": 4,
    "lineWidth": 120
  },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true,
      "nursery": {
        "useSortedClasses": {
          "level": "warn",
          "fix": "safe",
          "options": {}
        }
      }
    }
  },
  "javascript": {
    "formatter": {
      "quoteStyle": "single",
      "jsxQuoteStyle": "single"
    }
  },
  "assist": {
    "enabled": true,
    "actions": {
      "source": {
        "organizeImports": "on"
      }
    }
  }
}

お好みの設定に変更してみてください!

設定

biome.jsonを使用してBiomeをカスタマイズおよび設定する方法

https://biomejs.dev

設定

クラスのソート設定は こちら

使い方

./app の箇所を変更して、対象ファイルやフォルダを選択しましょう 🙆‍♂️

Terminal
# ./app配下に対して Format を実行
npx @biomejs/biome format --write ./app
 
# ./app配下に対して Lint を実行
npx @biomejs/biome lint --write ./app
 
# ./app配下に対して Format, Lint, インポートの整理 を実行
npx @biomejs/biome check --write ./app

VSCode の設定

私は VSCode を使用しているので作業効率を上げるための設定も行っています!

拡張機能のインストール

Biome - Visual Studio Marketplace

Extension for Visual Studio Code - Toolchain of the web

https://marketplace.visualstudio.com

Biome - Visual Studio Marketplace

以下をサポートしてくれます!

  • 保存時にフォーマット
  • コードリファクタリング
  • インライン提案とクイックフィックス

settings.json

この辺の設定を入れておくと、ファイル保存時に勝手にインポート文のソートやら、フォーマットが行われてめちゃ楽です 🚅

settings.json
{
  "editor.defaultFormatter": "biomejs.biome",
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.biome": "explicit"
  }
}
VS Code拡張機能

BiomeのVS Code拡張機能

https://biomejs.dev

VS Code拡張機能

Git Hooks

Git のコミットやプッシュ時にフォーマットやリントを実行して、コードの品質や一貫性を維持できます!

今回は GitHooks に Lefthook というツールを使用します!

Terminal
# lefthookのインストール
npm install lefthook --save-dev

ルートに lefthook.yml というファイルを追加する 📂

lefthook.yml
# コミット前にフォーマットチェックやリントを行い、安全な修正を行う
pre-commit:
  commands:
    check:
      glob: "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}"
      run: npx @biomejs/biome check --write --no-errors-on-unmatched --files-ignore-unknown=true --colors=off {staged_files}
      stage_fixed: true
 
# プッシュ前にフォーマットとリントのチェックを行う
pre-push:
  commands:
    check:
      glob: "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}"
      run: npx @biomejs/biome check --no-errors-on-unmatched --files-ignore-unknown=true --colors=off {push_files}
Terminal
# Gitプロジェクトにインストールして設定を完了する
npx lefthook install

これで、コミット、プッシュ時にエラーがあると自動的にチェックしてくれるようになります ✅

GitHub - evilmartians/lefthook: Fast and powerful Git hooks manager for any type of projects.

Fast and powerful Git hooks manager for any type of projects. - evilmartians/lefthook

https://github.com

GitHub - evilmartians/lefthook: Fast and powerful Git hooks manager for any type of projects.
Git Hooks

BiomeにおけるGit Hooksの利用

https://biomejs.dev

Git Hooks

おわりに

今回は、Biome の導入手順と所感をまとめてみました!

この構成であれば、フォーマッターやリンターの設定を修正したいときは、biome.json を見るだけで済むので、かなり楽だと思います。(ほぼほぼややこしい設定もなし!)

私自身の開発体験もかなり良くなったと感じているので、興味がある方はぜひ試してみてください 🌟

プロフィール

Profile Icon

けいこんぐら

ITエンジニア

大阪在住のサラリーマン。👨‍💻

新卒未経験でエンジニアとして働き、システムの開発等を行っている。

いつか、つよつよエンジニアになれるように日々頑張っています!

タグ