---
title: "Biome v2とは？最新2.6の導入・biome.json設定とESLint/Prettier移行"
url: "https://www.issoh.co.jp/tech/details/7390/"
published: 2025-06-24
updated: 2026-10-25
categories: ["JavaScript"]
publisher: "株式会社一創"
---

# Biome v2とは？最新2.6の導入・biome.json設定とESLint/Prettier移行

Biome（バイオーム）は、JavaScript・TypeScript・JSON・CSSなどの整形（フォーマッタ）と静的解析（リンター）を1つのRust製CLIで行う開発ツールチェーンです。2026年10月25日時点の最新版は**2.6.3**（2026年10月24日公開）で、2.6からMarkdown・YAML・SCSSも扱えるようになりました。この記事では、2.6.3をインストールして `biome init`・`biome check`・`biome migrate` を実行した結果をもとに、導入から設定、移行、CIへの組み込みまでを説明します。検証環境はmacOS（x86\_64）、Node.js 26.5.0、Biome 2.6.3と比較用の2.5.14、ESLint 10.13.0、Stylelint 17.16.0です。

なお、いきもの図鑑アプリの「Biome（株式会社バイオーム）」やその投稿・チャット機能とは別のものです。本記事はWeb開発ツールのBiome（biomejs.dev）を扱います。

## まとめ

- **最新版**：2.6.3（2026年10月24日）。2.6.0は2026年10月21日にnpmへ公開され、Markdown・YAML・SCSSの整形、JavaScriptで書くプラグイン（開発者プレビュー）、設定の解決結果を表示する `biome inspect` が加わりました。
- **更新時の注意**：2.5から2.6へ上げると、設定を変えなくても `README.md` やGitHub ActionsのYAMLが検査対象に入ります。実測では検査対象が2ファイルから5ファイルに増え、既存のLintエラー1件に、新たな整形エラー3件が加わりました。
- **導入**：`npm install -D -E @biomejs/biome` のあと `npx biome init` で `biome.json` を作ります。2.6ではGitリポジトリ内で実行すると `.gitignore` の尊重が自動で有効になります。
- **設定**：対象と除外は `files.includes` に `!` 付きのパターンで書き、推奨ルールは `"preset": "recommended"` で有効にします。
- **移行**：ESLint 10の推奨設定に個別ルールを追加した検証用設定では、68ルール中62ルールが直接移りました。Stylelintの標準設定は82ルール中24ルールにとどまるため、CSSのLintは急いで置き換えないほうが安全です。

## Biomeの担当範囲とESLint・Prettierとの比較

Biomeは2023年8月29日にRomeの公式フォーク（派生）として発表され、Romeの開発者が引き継いだプロジェクトです。ソースコードはGitHubの [biomejs/biome](https://github.com/biomejs/biome) で公開され、ライセンスはMITとApache-2.0のデュアル（npmパッケージの表記は `MIT OR Apache-2.0`）、スター数は2026年10月25日時点で25,990（GitHub APIの値）です。1つのバイナリでフォーマッタ・リンター・アシスト（importの並び替えなど）を兼ねるため、従来の構成と比べると次のように部品が減ります。

| 観点                | ESLint＋Prettier                     | Biome 2.6            |
| ----------------- | ----------------------------------- | -------------------- |
| 設定ファイル            | eslint.config.js・.prettierrc        | biome.json 1つ        |
| 整形とLintの衝突回避      | 競合ルールの無効化（eslint-config-prettier等）  | 不要                   |
| import整列          | 別プラグイン                              | アシストに内蔵              |
| 型情報を使うルール         | typescript-eslint（TypeScript API利用） | 独自の型推論（TypeScript不要） |
| 独自ルールの追加          | JSプラグイン（成熟）                         | GritQL・JS（プレビュー）     |
| CSS・Markdown・YAML | Prettier（Lintは別ツール）                 | 整形とLintの両方           |

2.6.3に同梱されている設定スキーマで数えると、ルールは安定版の7グループで486（a11y 38・complexity 57・correctness 112・performance 16・security 7・style 117・suspicious 139）、試験段階のnurseryで154あります（各グループの設定項目であるpresetとrecommendedは除外）。2.5.14の安定版427から59増えたのは、2.6.0でnurseryの59ルールが安定版へ昇格したためです。ESLintとPrettierの単体での使い方は[ESLintをVSCodeで使う設定手順｜ESLint 10のflat configと保存時の自動修正【10.13対応】](/tech/details/3286/)と[Prettierとは？意味・読み方と使い方・設定、ESLintとの違い【3.9対応】](/tech/details/3354/)で扱っています。

## Biomeのバージョン履歴と最新版の確認方法

npmの `latest` タグは2026年10月25日時点で2.6.3です。v2系のマイナー版の公開日と主な変更は次のとおりです（公開日はnpmと[GitHub Releases](https://github.com/biomejs/biome/releases)、内容は[公式CHANGELOG](https://biomejs.dev/internals/changelog/)より）。公式ブログの日付はnpmへの公開より前になることがあり、2.6のブログは10月15日付です。

| 版     | 公開日        | 主な変更                                |
| ----- | ---------- | ----------------------------------- |
| 2.0.0 | 2025-06-17 | 型認識Lint・GritQLプラグイン・入れ子設定           |
| 2.1.0 | 2025-07-08 | noMisusedPromises追加・スキャナの対象絞り込み     |
| 2.2.0 | 2025-08-14 | 並び替え順の指定・Qwikドメイン追加                 |
| 2.3.0 | 2025-10-24 | Vue・Svelte・Astroの試験対応・Tailwind v4構文 |
| 2.4.0 | 2026-02-15 | SARIFレポーター・複数レポーター出力                |
| 2.5.0 | 2026-06-12 | preset設定・–watch・SVG対応               |
| 2.6.0 | 2026-10-21 | Markdown・YAML・SCSS・JSプラグイン・inspect  |

v2.0の柱は、`typescript` パッケージを使わずにPromiseの扱い漏れなどを検出する型認識Lintです。2.6では型推論エンジンが書き直され、型を必要になった時点で計算して再利用する方式になりました（[Biome v2.6の公式ブログ](https://biomejs.dev/blog/biome-v2-6/)）。

手元の版は `npx biome --version`（出力は `Version: 2.6.3`）、公開中の最新版は `npm view @biomejs/biome version` で確認できます。更新するときは、パッケージを上げたあとに `biome migrate --write` を実行します。2.5.14の設定のまま2.6.3を動かすと`The configuration schema version does not match the CLI version 2.6.3` という通知が出ますが、検査自体は続行されます。v1系から移行する場合は、まずv2.0へ更新して移行コマンドを実行し、その後に新しいv2系へ更新して再度移行します（v2.1以降の `migrate` は、v1で推奨だったstyleルールを有効化しないため）。

```
npm install -D -E @biomejs/biome@latest
npx biome migrate --write
```

## v2.6で追加された主な機能

### Markdown・YAML・SCSSの整形とLint

2.6の公式ブログによると、MarkdownのパーサーはCommonMarkの適合テストを100%通過し、フォーマッタはPrettierとの互換が約92%です。表やタスクリストなどGitHub Flavored Markdownの拡張は既定で読み取ります。YAMLはパーサーが公式テストスイートに100%適合し、フォーマッタはPrettierと100%互換とされています。YAMLのLintルールは現時点で1本だけです。SCSSは公式テストスイートの90%以上に対応し、既存のCSS向けLintルールがSCSSにも効きます。

Markdown内のコードブロックも整形されます。実測では、```` ```js ```` のブロック内の `const a = 'b'` が `const a = "b";` に書き換わりました。この挙動は `markdown.formatter.formatEmbeds` を `false` にすると止まります。日本語の文中で `**「重要」**` のように記号の直後に強調記号を置く書き方向けに、`markdown.parser.cjkFriendlyEmphasis` という読み取りオプションもあります。

### JavaScriptで書くLintプラグイン（開発者プレビュー）

独自ルールは2.0からGritQLで書けましたが、2.6でJavaScript（または型を除去して読み込まれるTypeScript）でも書けるようになりました。公式ブログの例をそのまま `plugin.js` に保存し、`biome.json` に `"plugins": ["plugin.js"]` を足して実行すると、`eval` と `setTimeout` の呼び出しに `Restricted callee` のエラーが出ました。読み込み元の `@biomejs/runtime/plugin` は追加でインストールする必要がなく、Biome本体に組み込まれた実行環境（Rust製のJavaScriptエンジンboa）で動きます。

```
import { ast, defineRule, registerDiagnostic } from "@biomejs/runtime/plugin";

const RESTRICTED = new Set(["eval", "setTimeout", "setInterval"]);

export const restrictedCallee = defineRule({
  query: ast("JS_CALL_EXPRESSION"),
  run(node) {
    const callee = node.callee;
    if (callee?.kind !== "JS_IDENTIFIER_EXPRESSION") return;
    if (!RESTRICTED.has(callee.text)) return;
    registerDiagnostic(callee, "error", "Restricted callee");
  },
});
```

プラグインが受け取るのはESLintのASTではなく、空白やコメントまで保持する構文木（CST）です。ESLintのプラグインはそのまま動かないので、社内ルールを移すときは書き直しが前提になります。開発者プレビューの段階なので、まずは警告として試すのが無難です。警告にするには、上のコードの `registerDiagnostic` の第2引数を `"error"` から `"warning"` に変えます。

### biome inspect configによる設定値と適用元の確認

`biome inspect config` は、`extends` を解決した設定を表示します。`overrides` の適用結果を確認するには、`--path` で対象ファイルを指定します。フィールドと対象ファイルを指定すると、その値がどの設定のどの行から来たかがわかります。次は、`**/*.test.ts` に行幅120を指定したoverrideがある状態で実行した結果です。

```
$ npx biome inspect config formatter.lineWidth --path src/x.test.ts
  i The key formatter.lineWidth has the following value.
  > 55 │ 				"lineWidth": 120
  i This value is provided by override 0 in the root configuration.
  i The override matched src/x.test.ts using **/*.test.ts.
```

このほか、Stylelintの設定を読み込む `biome migrate stylelint`、Node.jsなしで入れられるスタンドアロンのインストーラ、Android（Termux）向けのバイナリが2.6で加わりました。

## Biome 2.5から2.6への更新に伴うMarkdown・YAML・SCSSの検査対象追加

2.6ではMarkdown・YAML・SCSSの整形とLintが既定で有効です。2.5のころに作った `biome.json` を変えずに上げると、それまで無視されていたファイルが検査対象に入ります。`src/a.ts`・`README.md`・`.github/workflows/ci.yml`・`styles/main.scss` を置いたプロジェクトで、同じ設定のまま `biome check .` を実行した結果は次のとおりです。

| 版      | 検査したファイル（biome.jsonを含む） | エラー | 増えた指摘                         |
| ------ | ----------------------- | --- | ----------------------------- |
| 2.5.14 | 2                       | 1   | –                             |
| 2.6.3  | 5                       | 4   | README.md・ci.yml・main.scssの整形 |

README.mdでは箇条書きの `*` が `-` に、`*emphasis*` が `_emphasis_` に変わり、YAMLではインデントがスペース5つから4つに詰められました。`biome ci` はエラーがあると終了コード1を返すので、それまでエラーのなかったリポジトリでも、パッケージの版を上げただけのプルリクエストがCIで落ちます。対処は2通りあります。整形を受け入れるなら、先に `npx biome check --write .` を1回流して差分を別のコミットにします。MarkdownやYAMLを当面対象外にするなら、次のように言語ごとに止めます。

```
{
  "markdown": { "formatter": { "enabled": false }, "linter": { "enabled": false } },
  "yaml": { "formatter": { "enabled": false }, "linter": { "enabled": false } }
}
```

この設定を足して再実行すると、README.mdとci.ymlへの指摘は消え、止めていないSCSSの指摘だけが残りました。ドキュメントをPrettierで整形しているリポジトリでは、どちらで整形するかを先に決めてください。

ほかに2.6で挙動が変わった点として、内部向けだった `javascript.parser.gritMetavariables` が削除され、残っていると設定エラーで終了します。Tailwindのルール群が自動で有効になる条件も、`package.json` の `tailwindcss` がv3以上からv4以上に変わりました。

## npm・pnpmでのインストールとbiome initの初期設定

### インストールコマンドとNode.jsの要件

公式は `-E`（`--save-exact`）付きで版を固定して入れる手順を案内しています。上の2.6の例のように整形結果は版で変わるため、開発者ごとやCIで版がずれると差分が出るからです。

```
npm install -D -E @biomejs/biome
pnpm add -D -E @biomejs/biome
yarn add -D -E @biomejs/biome
bun add -D -E @biomejs/biome
curl -fsSL https://biomejs.dev/install | bash
```

最後の行が2.6で加わったスタンドアロンのインストーラ（macOS・Linux用。WindowsはPowerShellの `irm https://biomejs.dev/install.ps1 | iex`）で、Node.jsを使わないプロジェクト向けです。npm版の `@biomejs/biome` の要件は `node >=14.21.3` だけで、実体はRust製のネイティブバイナリです。2.6.3ではAndroidの2種を含む10種のOS別パッケージから該当するものがoptionalDependenciesとして入ります。`npx` がローカルの版を優先して実行する仕組みは[npxとは？npm execとの違い・キャッシュ実行の仕組みとCIでの固定手順](/tech/details/17745/)で解説しています。

### biome initが生成するbiome.json（v2.6.3）

Gitリポジトリの外で `npx biome init` を実行すると、次の `biome.json` ができます。Biomeの既定はインデントがタブ、文字列が二重引用符で、Prettierの既定（スペース2つ）とは違います。

```
{
	"$schema": "https://biomejs.dev/schemas/2.6.3/schema.json",
	"vcs": { "enabled": false, "clientKind": "git", "useIgnoreFile": false },
	"files": { "ignoreUnknown": false },
	"formatter": { "enabled": true, "indentStyle": "tab" },
	"linter": { "enabled": true, "rules": { "preset": "recommended" } },
	"javascript": { "formatter": { "quoteStyle": "double" } },
	"assist": { "enabled": true, "actions": { "source": { "organizeImports": "on" } } }
}
```

（実際の出力は各項目が複数行に展開されます。上は内容を変えずに行をまとめたものです。）`git init` 済みのフォルダ（サブフォルダを含む）で実行すると、`vcs` が `"enabled": true`・`"useIgnoreFile": true` で書き出され、`.gitignore` に載ったファイルが自動で対象外になります。Gitの外でも同じ設定にしたい場合は `biome init --git` を使います。古い記事で見かける `"recommended": true` は2.5で非推奨になった書き方で、現在は `"preset"` に `recommended`・`all`・`none` のいずれかを指定します。

## biome.jsonの主要設定

### files.includesによる対象ファイルと除外の指定

v2では、v1の `files.include` と `files.ignore` が `files.includes` 1つにまとまりました。除外したいパスは先頭に `!` を付けて並べます。

```
{
  "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true },
  "files": { "includes": ["**", "!**/dist", "!**/*.gen.ts"] }
}
```

`dist/out.js` を置いたまま `biome check .` を実行すると、`dist` 配下の診断は出ませんでした。`!` で外したパスはLintと整形の対象外になる一方、型情報の索引には残ります。索引からも外したい大きな生成物フォルダには `!!`（例 `"!!**/dist"`）を使います。パターンは `biome.json` のある場所を基準に解決されます。

### formatterとlinterの設定例（noConsoleの有効化）

```
{
  "formatter": { "indentStyle": "space", "indentWidth": 2, "lineWidth": 100 },
  "linter": {
    "rules": {
      "preset": "recommended",
      "suspicious": {
        "noConsole": { "level": "warn", "options": { "allow": ["error", "warn"] } }
      }
    }
  },
  "javascript": { "formatter": { "quoteStyle": "single", "semicolons": "asNeeded" } }
}
```

`noConsole` は2.6.3でも推奨ルールに含まれていません。`console.log("x")` だけのファイルを推奨設定で検査しても診断は0件だったため、上のように個別に有効化します。`allow` に並べたメソッド（例では `console.error` と `console.warn`）は対象外になります。

### モノレポでの入れ子設定（root: falseとextends: “//”）

ルートの `biome.json` に加えて、サブディレクトリにも設定ファイルを置けます。入れ子の設定には `"root": false` を書き、ルートの設定を引き継ぐ場合は `"extends": "//"` を指定します（指定しないとルートを継承しません）。次は `packages/app/biome.json` に置く例です。`biome.json` にはコメントを書けないので、コメントを入れたい場合は `biome.jsonc` にします。

```
{
  "root": false,
  "extends": "//",
  "formatter": { "lineWidth": 80 }
}
```

`packages/app` の中で `biome lint` を実行すると、ルートで有効にした `noConsole` の警告が出て、設定が引き継がれていることを確認できました。2.6からは `extends` で読み込んだ設定がさらに別の設定を読み込む形を10段まで辿れるため、共有設定をnpmパッケージで配る構成も組めます。パッケージ構成の考え方は[モノレポ（Monorepo）とは？マルチレポとの違い・メリット・デメリットと導入手順](/tech/details/3934/)を参照してください。

## check・lint・format・ciコマンドの使い分け

| コマンド                   | 実行内容              | 主な用途          |
| ---------------------- | ----------------- | ------------- |
| `biome check`          | 整形・Lint・import整列  | 手元での一括確認      |
| `biome check --write`  | 安全な修正だけ適用         | 保存前の自動修正      |
| `biome lint`           | Lintのみ            | ルール単位の確認      |
| `biome format --write` | 整形のみ適用            | Prettierの置き換え |
| `biome ci`             | checkと同じ検査・書き込みなし | CI            |

`--write` が当てるのは安全と判定された修正だけです。サンプルでは、`==` を `===` にする `noDoubleEquals` と、`fs` を `node:fs` にする `useNodejsImportProtocol` が安全でない修正（Unsafe fix）の扱いで、`--write` 後もソースは変わりませんでした。これらも直すには `--unsafe` を足します。挙動が変わりうる修正なので、差分を確認してから入れてください。

エラーが1件でもあると終了コードは1になります。対象を絞るオプションには、ステージ済みファイルだけの `--staged`、既定ブランチとのコミット済みの差分だけの `--changed`、監視モードの `--watch` があります。`--changed` は比較元を `vcs.defaultBranch` か `--since=REF` で決めておかないと失敗します。

## biome-ignoreコメントでルールを抑制する方法

特定の行だけルールを止めるには、直前の行に `biome-ignore` と理由を書きます。ファイル全体を対象にする `biome-ignore-all`（ファイルの先頭に書く）と、範囲を指定する `biome-ignore-start` / `biome-ignore-end` もあります。

```
// biome-ignore lint/suspicious/noConsole: デバッグ出力を残す
console.log("keep");
```

抑制コメントは、対象のルールが実際に指摘を出している場合にだけ意味を持ちます。何も検出していない箇所に `biome-ignore lint/suspicious/noDebugger` を書くと、2.6.3は `suppressions/unused`（使われていない抑制コメント）という診断を出しました。`noConsole` を有効にしていない状態で上の例を書いた場合も同じです。理由の部分に雛形の `<explanation>` を残すと`A suppression shouldn't have an <explanation> placeholder` という警告が出ます。

## ESLint・Prettier・StylelintからBiomeへの移行手順

### biome migrate eslintの実行結果（ESLint 10のflat config）

ESLint 10.13.0の `eslint.config.js`（`@eslint/js` 10.0.1の推奨設定に `no-console`・`eqeqeq`・`no-var`・`prefer-const`・`no-unused-vars` を追加し、`ignores: ["build/**"]` を指定）を用意し、2.6.3で `npx biome migrate eslint --write` を実行しました。

- ESLintのルール68件のうち62件をBiomeのルールへ直接移行（91%）
- `no-cond-assign` と `no-unused-private-class-members` は `--include-inspired` で類似ルールへ、`no-octal` と `no-useless-assignment` は `--include-nursery` で試験段階のルールへ移行できる
- `no-invalid-regexp` と `no-unexpected-multiline` は未実装
- `ignores` は `linter.includes` の `"!build/**"` に変換

見落としやすいのは、移行後の `biome.json` が `"preset": "none"` になる点です。Biomeの推奨ルールは無効になり、ESLintから移したルールだけが動きます。Biome独自の推奨ルールも使うなら、`preset` を `recommended` に戻してから増えた指摘を確認します。2.6からは `no-unused-vars` の `ignoreRestSiblings` も移されるようになり、ESLint側で省略していた値はESLintの既定（`false`）で書き込まれました。Biomeは `node` を呼び出してESLintの設定ファイルを読み込むため、設定が参照するパッケージは移行が終わるまで消さないでください。`@eslint/js` を外した状態で実行すると `ERR_MODULE_NOT_FOUND` で止まりました。

### biome migrate prettierで変換される項目

`.prettierrc` に `{"semi":false,"singleQuote":true,"printWidth":100}` を書いて `npx biome migrate prettier --write` を実行すると、`formatter.lineWidth: 100`、`javascript.formatter.semicolons: "asNeeded"`、`quoteStyle: "single"` に変換され、インデントはPrettierの既定に合わせて `indentStyle: "space"`・`indentWidth: 2` が書き込まれました。2.6.3では `trailingCommas: "all"` などPrettierの既定値もすべて明示され、HTMLの空要素を `<br />` の形にする `selfCloseVoidElements: "always"` も入ります。セミコロンを省略する書き方の是非は[TypeScriptのセミコロンは必要か｜省略の判断とESLint・Prettier設定【2026年版】](/tech/details/5572/)で整理しています。

### biome migrate stylelintの実行結果

Stylelint 17.16.0と `stylelint-config-standard` 40.0.0を使った `.stylelintrc.json`（`ignoreFiles: ["dist/**"]` 付き）で `npx biome migrate stylelint --write` を実行すると、82ルール中24ルール（29%）が直接移り、2ルールが試験段階のルールへ移行可能、56ルールは対応するBiomeのルールがありませんでした。対応がないものには `color-hex-length`・`selector-class-pattern`・`rule-empty-line-before` など、命名や書式の規約を決めるルールが多く含まれます。`ignoreFiles` は `linter.includes` の `"!dist/**"` になりました。Stylelintの標準設定に頼っているなら、CSSのLintはStylelintを残し、整形だけBiomeに寄せるのが現実的です。Stylelint側の設定は[Stylelintとは？v17の変更点・導入手順・設定とCSSネスト対応【17.16対応】](/tech/details/10686/)で解説しています。

### 型認識ルール・独自プラグイン依存時の段階移行

typescript-eslintの型情報を使うルールに頼っているプロジェクトは、すぐに置き換えないほうが安全です。[Biome v2の公式ブログ](https://biomejs.dev/blog/biome-v2/)は、`noFloatingPromises` がv2.0公開時の予備検証でtypescript-eslintの検出ケースの約75%を捉えたと報告しています。[v2.1の公式ブログ](https://biomejs.dev/blog/biome-v2-1/)では約85%まで改善したと報告されていますが、2.6や個別のプロジェクトでの検出率を保証する数値ではありません。eslint-plugin-jsx-a11yのようにフレームワーク固有のルールを多数持つプラグインを使っている場合も、Biomeに同等のルールがないことがあります。どちらかに当てはまるなら、整形だけを先にBiomeへ移し、LintはESLintを残す段階移行にします。ツールの入れ替えをきっかけに、テストやCIを含めた開発基盤から作り直す場合は[フルスクラッチ開発の支援](/service/system/fullscratch/)も相談できます。Rust製の別系統のリンターとの比較は[OxlintとESLintの違いとは？読み方・速度実測・移行手順とBiomeとの比較【1.88対応】](/tech/details/8351/)にまとめています。

## GitHub ActionsでのCI組み込み（setup-biome@v2）

```
name: Code quality
on: [push, pull_request]
jobs:
  biome:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: biomejs/setup-biome@v2
      - run: biome ci
```

`setup-biome` の入力は `version`・`working-dir`・`token` の3つです。`version` を省略すると、npm・yarn・pnpm・bunのロックファイル、`package.json`、`biome.json` の `$schema` の順に版を探し、どこにもなければ最新版を入れます。手元で `-E` 付きで固定していれば、CIも同じ版で動きます。`@v2` はv2系のメジャータグで、2026年10月25日時点の最新リリースはv2.7.1（2026年3月11日）です。手順の全体は公式の[Continuous Integration](https://biomejs.dev/recipes/continuous-integration/)にあります。

`biome ci` は環境変数 `GITHUB_ACTIONS=true` を検出するとGitHub向けの出力に切り替わり、次の形式で診断を出します（手元では `--reporter=github` で同じ出力を確認できます）。この形式の行は、プルリクエストの差分画面に注釈として表示されます。

```
::error title=lint/suspicious/noDoubleEquals,file=src/a.ts,line=3,endLine=3,col=8,endColumn=10::Using == may be unsafe if you are relying on type coercion.
```

依存のキャッシュ設計は[GitHub Actionsのキャッシュ｜actions/cacheのkey設計と復元されない原因の切り分け](/tech/details/16933/)が参考になります。

## VS Code拡張機能の設定

拡張機能のIDは `biomejs.biome` です。VS CodeはMarketplace、CursorやVSCodiumはOpen VSXから入れます。保存時に整形し、安全な修正とimportの整列も当てるには、`.vscode/settings.json` に次を書きます。

```
{
  "editor.defaultFormatter": "biomejs.biome",
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.biome": "explicit",
    "source.organizeImports.biome": "explicit"
  }
}
```

Prettier拡張も入っている環境では、`editor.defaultFormatter` を指定しないと整形がどちらで行われるか定まりません。2.6でMarkdownとYAMLも整形できるようになったため、`[markdown]` や `[yaml]` の言語別設定でPrettierを指定している場合は、どちらに任せるかを決め直します。`biome.json` のないプロジェクトでBiomeを動かしたくない場合は、拡張側の `biome.requireConfiguration` を `true` にします。

## よくある質問

### Biomeの最新バージョンはいくつですか？

2026年10月25日時点で2.6.3（2026年10月24日公開）です。最新の版は `npm view @biomejs/biome version` で確認でき、更新後は `biome migrate --write` で設定の `$schema` などを新しい版に合わせます。

### Biomeについて質問できるチャットはありますか？

公式のDiscordがあり、`https://biomejs.dev/chat` から参加できます（Discordの招待リンクへ転送されます）。`biome init` の実行後にもこのURLが表示されます。不具合の報告と機能要望はGitHubのbiomejs/biomeで受け付けています。

### 特定のファイルやフォルダをBiomeの対象から外すには？

`biome.json` の `files.includes` に `"!**/dist"` のように `!` 付きで書きます。v1の `files.ignore` はv2で使えなくなりました。`vcs.enabled` と `vcs.useIgnoreFile` を `true` にすると `.gitignore` の内容も除外に使われます。

### console.logが検出されないのはなぜですか？

`noConsole` が推奨ルールに含まれていないためです。`linter.rules.suspicious.noConsole` を `warn` か `error` にすると検出されます。

### ESLintとBiomeは併用できますか？

できます。整形だけBiome、LintはESLintという分担が一般的な段階移行です。その場合はESLintの整形系ルールとPrettierを外し、同じファイルを2つのツールが別々に書き換えないようにします。

## 関連記事

- [ESLintをVSCodeで使う設定手順｜ESLint 10のflat configと保存時の自動修正【10.13対応】](/tech/details/3286/)
- [Prettierとは？意味・読み方と使い方・設定、ESLintとの違い【3.9対応】](/tech/details/3354/)
- [Stylelintとは？v17の変更点・導入手順・設定とCSSネスト対応【17.16対応】](/tech/details/10686/)
- [OxlintとESLintの違いとは？読み方・速度実測・移行手順とBiomeとの比較【1.88対応】](/tech/details/8351/)
- [Oxcとは？Rust製JavaScriptツールチェーンの構成と使い方・SWCとの違い](/tech/details/9737/)

---

出典: [Biome v2とは？最新2.6の導入・biome.json設定とESLint/Prettier移行](<https://www.issoh.co.jp/tech/details/7390/>)（株式会社一創）
