Skip to content

Biome への移行について

このページでは、本プロジェクトが従来使用していた ESLint と Prettier から、次世代ツールである Biome へ移行する方針と、その具体的な移行手順をまとめています。
開発者全員が同じ開発体験を得られるよう、必ず本ドキュメントに従いセットアップを行ってください。

1. 移行の背景

本プロジェクトではこれまで、コード品質向上のために ESLint と Prettier を併用してきました。
しかし、以下の課題がありました。

  • 設定ファイルが複雑化しやすい
  • 実行速度が遅く CI の負荷が高い
  • ESLint と Prettier の競合による設定トラブル
  • 依存パッケージの管理が重い

Biome は Rust 製の高速なコードフォーマッタ兼リンターであり、ESLint と Prettier の役割を一つにまとめ、パフォーマンスと開発効率を大きく改善することができます。

本プロジェクトでは、保守性と CI の信頼性向上のため、Biome を標準ツールとして採用します。

2. 必須変更点

開発者が対応すべきこと

  • Node.js が環境にインストールされていることを確認
  • プロジェクトの依存関係を最新化する
  • Biome 設定ファイルをローカル環境に取り込む
  • 旧ツール(ESLint、Prettier)のプラグインや設定を削除

Biome のセットアップ方法

1. 旧ツールの削除

まず、ローカルに残っている ESLint/Prettier 関連ファイルを削除します。

削除するファイルの例


.eslintrc
.eslintrc.js
.eslintrc.cjs
.prettierrc
.prettierrc.json
.prettierrc.js
.prettierignore

パッケージのアンインストール

プロジェクトルートで実行してください。


bun remove eslint prettier
npm uninstall eslint prettier
pnpm remove eslint prettier
yarn remove eslint prettier

(使用しているパッケージマネージャに合わせて一つだけ実行)


2. Biome のインストール

本プロジェクトではバージョンを統一するため、下記のコマンドでインストールしてください。


bun add -D @biomejs/biome

その他のパッケージマネージャも可。


npm install -D @biomejs/biome
pnpm add -D @biomejs/biome
yarn add -D @biomejs/biome

3. Biome 設定ファイルの作成

プロジェクトルートに biome.json を作成してください。

json
{
  "$schema": "https://biomejs.dev/schemas/1.8.0/schema.json",
  "formatter": {
    "enabled": true
  },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true
    }
  },
  "javascript": {
    "formatter": {
      "quoteStyle": "double"
    }
  }
}

必要に応じて調整できますが、基本的に上記のまま利用できます。


4. スクリプトの更新

package.json に以下のスクリプトを追加してください。

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

これにより、従来の ESLint/Prettier とほぼ同じ操作性で利用できます。


開発フローの変更点

1. コミット前チェックについて

プロジェクトでは Biome を使ったコードチェックを推奨します。 コミット前に以下を実行してください。

bun run lint
bun run format

エラーが出た場合は修正した上でコミットしてください。

2. CI の設定変更

GitHub Actions などの CI では、ESLint を呼んでいたジョブを Biome に置き換えてください。

例:

yaml
- name: Run Biome
  run: bun run lint

旧コードからの移行時の注意点

  • import 順序や改行ルールが Prettier と異なる場合があります
  • 既存のファイルが大量に変更されることがあります
  • 移行時は一度 format を全体に適用することを推奨

以下を実行することで一括整形できます。

bun run format

コミットは一つにまとめるとヒストリが汚れません。


よくある質問

Q1. ESLint プラグインが必要な場合はどうしますか

Biome では独自ルールがあり、多くの場合 ESLint プラグインは不要です。 必要な機能がない場合はプロジェクト内 issue で相談してください。

Q2. Prettier の設定は引き継げますか

基本的に Biome 独自の高速フォーマッタが動作するため、完全互換ではありません。 必要な設定は biome.json 内で定義します。