Next.js 14でのBiomeとLefthookの導入方法
はじめに
Web開発でのコード品質管理やフォーマットは重要です。Next.js 14プロジェクトに、コードのフォーマットと自動Lintを行うBiomeと、Gitフックでこれらの操作を効率化するLefthookを導入し、開発環境を効率化する手順を詳しく解説します。
BiomeとLefthookとは?
- Biome: JavaScriptやTypeScriptのコードをフォーマット、整理、Lintするツールです。軽量で高速に動作し、コードの一貫性を保ちます。
- Lefthook: Gitフックを通じて自動でLintやFormatを実行し、手動のコードチェックを減らし開発者の負担を軽減します。
Next.jsプロジェクトの作成
まず、Next.js 14プロジェクトを以下のコマンドで作成します。
npx create-next-app@14.2.16 --ts sample-app && cd sample-app && npm i next@14.2.16 && code .
Biomeの導入
次に、Biomeを開発用依存としてインストールします。
npm install --save-dev --save-exact @biomejs/biome
Biomeの初期化
インストールが完了したら、以下のコマンドでBiomeを初期化します。
npx @biomejs/biome init
biome.json
の設定
生成されたbiome.json
ファイルを以下のように編集します。インデント幅やクオートスタイルなど、フォーマッタやリンターの詳細を設定可能です。
{
"$schema": "https://biomejs.dev/schemas/1.8.3/schema.json",
"extends": [],
"files": { "ignoreUnknown": true },
"organizeImports": {
"enabled": true
},
"linter": {
"ignore": [".next", "node_modules", "public"],
"rules": {
"recommended": true
}
},
"formatter": {
"enabled": true,
"formatWithErrors": true,
"ignore": [".next", "node_modules", "public"],
"indentWidth": 2,
"indentStyle": "space",
"lineWidth": 80
},
"javascript": {
"parser": {
"unsafeParameterDecoratorsEnabled": true
},
"formatter": {
"quoteStyle": "single",
"jsxQuoteStyle": "single",
"semicolons": "always",
"arrowParentheses": "asNeeded"
}
},
"json": {
"parser": { "allowComments": true },
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 80
}
}
}
VSCode用の設定
BiomeのVSCode拡張機能をインストールし、保存時に自動フォーマットが動作するように設定します。
settings.json
設定
VSCodeのBiomeを既定のフォーマッタとして設定し、自動フォーマットを有効化します。
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "biomejs.biome",
"editor.codeActionsOnSave": {
"quickfix.biome": "explicit",
"source.organizeImports.biome": "explicit"
}
}
.vscode/extensions.json
の設定
この設定により、チームメンバーがBiomeの拡張機能を推奨として表示されるようになります。
{
"recommendations": ["biomejs.biome"]
}
ESLintの削除手順(ESLint導入済みの場合)
-
プロジェクトルートにある
.eslintrc.json
または.eslintrc.js
ファイルを削除します。 -
package.json
内の以下のESLint関連の依存関係を削除します。"eslint": "^8", "eslint-config-next": "14.2.16",
-
依存関係を削除した後、再インストールします。
npm install
-
VSCodeなどのエディタで、既定のフォーマッタをBiomeに切り替えます。
これで、ESLintの影響がなくなり、Biomeによるコードチェックとフォーマットが有効になります。
Lefthookの導入
次に、Lefthookを導入してGitフックでコードの自動チェックを設定します。
npm install lefthook --save-dev
Lefthookの設定ファイル生成
以下のコマンドでLefthookを初期化し、.lefthook.yml
設定ファイルを生成します。
npx lefthook install
.lefthook.yml
の設定
以下の設定を.lefthook.yml
に追加し、コミット前にBiomeを使用してLintとFormatを自動実行します。
pre-push:
commands:
packages-audit:
tags: frontend security
run: npm audit
pre-commit:
parallel: true
commands:
biome:
glob: "src/**/*.{js,ts,jsx,tsx}"
run: npx @biomejs/biome check --write {staged_files}
package.json
にコマンド追加
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "biome lint --apply ./src/**/*", 追加
"format": "biome format ./src/**/* --write", 追加
"check": "biome check --apply ./src/**/*" 追加
},
まとめ
以上の手順で、Next.js 14プロジェクトにおいて、BiomeとLefthookを使用した自動化環境の構築が完了しました。
Discussion