0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Biome の導入 〜 設定まで

Last updated at Posted at 2025-01-23

最近巷で話題の biome を ESLint と Prettier の代わりに導入してみようと思います。
導入 〜 設定までの備忘録として記事にしようと思います。
今回はReact や Next のプロジェクトが既に立ち上がってる状態を前提としています。
この記事では npm で導入していきます。

Biome とは

もともと Rome という、lint や format、build、test といった開発ツールを1つに集約することを目指したプロジェクトがありました。
この Rome の主要メンバーによってフォークされて Biome が生まれたらしいです。

Biome は JavaScript/TypeScript の 「Linter と formatter が一緒になったもの」という理解でひとまず良さそうですね。
format としては、Prettier とは 97% の互換性があり、Linter としては ESLint などから 303個のルールがあります。

インストール

早速インストールしてみましょう!
公式では node のバージョンが14.18以降が必要なようです。

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

設定

設定ファイルの生成

npx @biomejs/biome init

このコマンドで biome.jsonが生成されます。
この設定ファイルで linter や formmater の設定を行います。
初期設定では 推奨ルールが有効になってそうです。

biome.json の設定

今回はとりあえず下記のような設定にしました。
この辺は設定などを参照して自由にやっちゃっていいと思います。

biome.json
{
  "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
  "vcs": {
    "enabled": false,
    "clientKind": "git",
    "useIgnoreFile": false
  },
  "files": {
    "ignoreUnknown": false,
    "ignore": [
      "**/node_modules/**",
      "./.next/**",
      "./coverage/**",
      "./tsconfig.json"
    ]
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "indentWidth": 2
  },
  "organizeImports": {
    "enabled": true
  },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true,
      "style": {
        "noNonNullAssertion": "off"
      }
    }
  },
  "javascript": {
    "formatter": {
      "quoteStyle": "single",
      "jsxQuoteStyle": "single",
      "semicolons": "asNeeded",
      "trailingCommas": "none"
    }
  }
}

実行

CLIを参照し、実際に動かしてみましょう。
よく使いそうなコマンドはこんな感じです。
option の --writeで実際に書き換えてくれます。
applyもあるけど非推奨のようですね。

# format を走らせる
npx biome format --write ./src
# lint (check only) を走らせる
npx biome lint ./src
# lint fix linter を走らせる
npx biome lint --write ./src
# import, format, linter を走らせる
npx biome check --write ./src

script に追加

上記のコマンドを毎回打ってもいいですが、せっかくなので package.jsonの script に追加しました。
今回は root から biome を走らせてます。
ignore したり、biome lint ./srcのようにディレクトリ指定したりと調整すると良さそうです。

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

VSCode の拡張機能

VSCode で Biome を使用する場合は下記の拡張機能が便利です。
これでVSCode で Biome を実行できます。

Biome を実行する設定を settings.json に記載

.vscode配下のsettings.jsonに設定を記載します。
これで保存時に Biome で整形してくれます。

settings.json
{
  "editor.formatOnSave": true, // 保存時のフォーマット有効化
  "editor.codeActionsOnSave": {
    "quickfix.biome": "explicit",
    "source.organizeImports.biome": "explicit"
  },
  "[javascript]": {
    "editor.defaultFormatter": "biomejs.biome"
  },
  "[typescript]": {
    "editor.defaultFormatter": "biomejs.biome"
  },
  "[javascriptreact]": {
    "editor.defaultFormatter": "biomejs.biome"
  },
  "[typescriptreact]": {
    "editor.defaultFormatter": "biomejs.biome"
  },
  "[json]": {
    "editor.defaultFormatter": "biomejs.biome"
  },
  "[jsonc]": {
    "editor.defaultFormatter": "biomejs.biome"
  }
}

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?