Open7

ES-LintをやめてBiomeにする

BuzoBuzo

個人開発のNext.jsのプロジェクトにはES-Lintが入っている。Prettierは入れてない。
Prettierを追加しようと思ったけど、どうせならBiomeを試してみたいのでBiomeを入れてみる。
https://biomejs.dev/

Nodeのバージョン: v21.7.0
Nextのバージョン: 14.1.0

BuzoBuzo

Prettierより性能がよいらしい

BuzoBuzo

とりあえずeslintを消す

npm uninstall eslint eslint-config-nex

設定ファイルも消す

rm .eslintrc.json
BuzoBuzo

公式のドキュメントを見ながら、インストールを進める
https://biomejs.dev/guides/getting-started/

インストールを行う

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

biome.jsoncを作成。--jsoncをつけるとbiome.jsonの代わりにbiome.jsoncが作成される。

npx @biomejs/biome init --jsonc
BuzoBuzo

試しにsrc配下に対してフォーマットを実行してみる。

npx @biomejs/biome format src --write

いい感じに動いた。

BuzoBuzo

BiomeのVSCode拡張を入れて、オートフォーマットが効くようにする。
https://marketplace.cursorapi.com/items?itemName=biomejs.biome

VS Codeの設定も書く。

.vscode/settings.json
{
	"editor.formatOnSave": true,
	"editor.defaultFormatter": "biomejs.biome",
	"editor.codeActionsOnSave": {
		"quickfix.biome": "always",
		"source.organizeImports.biome": "always"
	}
}

BuzoBuzo

Format on saveと npx @biomejs/biome format --write ./src のフォーマットの結果が違う。。
後者はbiome.jsoncのルールに従ってないようなきがする。
調査する。

VS Codeのタブの設定がスペースになっていたのが原因のようだった。
biome.jsoncでformatterの設定を"indentStyle": "space"としたら直った