概要
Next.js
の開発において、ESLint
とPrettier
を併用することで、コードの品質とフォーマットを自動化し、効率的な開発環境を構築できます。ESLintはコードのエラーチェックやスタイルルールを提供し、Prettierは自動的にコードをフォーマットするツールです。本記事では、Next.js
プロジェクトでのESLintとPrettierの最適な設定方法を紹介します。
PrettierとESLintの違い
- ESLint: JavaScriptやTypeScriptコードのエラーチェックを行い、スタイルルールを強制します。たとえば、変数名やコーディングスタイルに関するエラーを事前に検出できます。
- Prettier: コードのフォーマットを一貫したスタイルで自動的に行います。特に、複数の開発者が関わるプロジェクトでは、コードスタイルの乱れを防ぎ、レビューがスムーズになります。
ESLintとPrettierのセットアップ
Step 1: 必要なパッケージをインストール
まず、ESLintとPrettierの両方をインストールします。
npm install --save-dev eslint prettier eslint-plugin-prettier eslint-config-prettier
このコマンドで、ESLintとPrettier、および両者を統合するためのプラグインをインストールします。
Step 2: .eslintrc.json
の設定
次に、プロジェクトのルートディレクトリに.eslintrc.json
ファイルを作成し、以下の設定を追加します。
{
"extends": [
"next/core-web-vitals",
"prettier"
],
"plugins": ["prettier"],
"rules": {
"prettier/prettier": "error",
"no-console": "warn"
}
}
ここで、"prettier/prettier": "error"
と設定することで、Prettierのフォーマットに違反する場合はESLintがエラーとして通知します。また、next/core-web-vitals
を拡張することで、Next.js
のベストプラクティスに基づいたルールが自動適用されます。
Step 3: Prettierの設定
.prettierrc
ファイルを作成し、次のようにフォーマットルールを設定します。
{
"singleQuote": true,
"trailingComma": "es5",
"tabWidth": 2
}
この設定により、コードはシングルクォートで統一され、末尾のカンマやインデント幅なども一貫したスタイルが保たれます。
VSCodeでの自動フォーマット
VSCodeを使用している場合、保存時にコードを自動フォーマットするように設定できます。settings.json
に以下を追加し、保存時にPrettierが自動的に動作するようにします。
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
この設定により、ファイルを保存するたびにESLintとPrettierが自動で適用され、コードが自動的に整形されます。
HuskyとLint-stagedの導入
さらに、コードコミット前に自動でESLintとPrettierを実行するためにHusky
とLint-staged
を使うと便利です。
npm install --save-dev husky lint-staged
package.json
に以下の設定を追加します。
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.js": [
"eslint --fix",
"prettier --write"
],
"*.ts": [
"eslint --fix",
"prettier --write"
]
}
この設定により、コードがコミットされる前にESLintとPrettierが自動で実行され、品質の高いコードが保たれます。
まとめ
ESLintとPrettierを組み合わせることで、Next.js
の開発環境におけるコード品質とフォーマットの一貫性を確保できます。これらのツールを適切に設定することで、コードのエラーチェックとスタイル統一が自動化され、開発スピードが向上します。VSCodeとの連携や、Huskyを用いたコミット前のチェックも活用して、さらに効率的なワークフローを構築しましょう。