【Visual Studio Code】VSCodeでコードを品質改善 ESLintの使い方完全ガイド!

はじめに

JavaScriptやTypeScriptで開発していると、コードの書き方にばらつきが出たり、うっかりミスがバグにつながったりすることがあります。そんなときに役立つのが「ESLint」です。

本ブログでは、初心者~中級者向けにESLintの使い方及び、Prettierとの連携の仕方を紹介します。

ESLintの機能

ESLintはJavaScriptやTypeScriptのコード品質をチェックするツール(Linter)です。

主な機能

  • 構文エラーやバグの予兆を検出
  • コーディングルール(スタイル)の強制
  • 不要なコードや未使用変数の警告
  • Prettierとの連携で整形と品質管理を両立

また、VSCodeと組み合わせることで、リアルタイムに警告表示や自動修正ができ、開発効率が大幅に向上します。

VSCode ESLintの導入手順

Node.jsプロジェクトの準備

Node.jsは、JavaScriptやTypeScriptをサーバーサイドでも動かせるようにする環境です。以下の公式サイトからインストールします。

  • Node.jsをインストールしないと、Node.jsのライブラリ(=パッケージ)を管理するコマンド”npm”が使用できません。

 Node.js公式サイト

Node.jsプロジェクトを以下のコマンドで、初期化を行います。

mkdir eslint-sample
cd eslint-sample 
npm init -y

eslint-sampleフォルダ内に、package.json という名称のファイルが作成されます。このファイルは、npmの心臓部とも言えるファイルです。プロジェクトの依存パッケージやスクリプト、バージョン情報などが記載されています。

  • 最終的なpackage.jsonの内容
{
  "name": "eslint-sample",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@eslint/js": "^9.35.0",
    "eslint": "^9.35.0",
    "eslint-config-prettier": "^10.1.8",
    "eslint-plugin-prettier": "^5.5.4",
    "eslint-plugin-react": "^7.37.5",
    "globals": "^16.4.0",
    "prettier": "^3.6.2",
    "typescript-eslint": "^8.43.0"
  }
}

ESLintのインストール

  • npmコマンドでのインストール
    プロジェクトにESLint本体を導入。設定ファイルを使ってLintルールを定義します。
npm install eslint --save-dev
  • VSCode 拡張機能でのインストール
    VSCode上でLint結果を表示したり、保存時に自動修正したりする補助ツールです。

ESLintの初期設定

以下のコマンドを実行します。

npx eslint --init

ESLintの「設定ファイル(.eslintrc)」を対話形式で生成します。具体的には、以下のような質問に答えていくことで、プロジェクトに最適なLintルールと必要なプラグインを自動でセットアップしてくれます。

  • 使用目的の選択
    コードの構文チェックだけか、問題検出やスタイル強制まで行うかを選びます。
How would you like to use ESLint?
❯ To check syntax only
  To check syntax and find problems
  • モジュール形式の選択
    ES ModulesかCommonJSかを選択。TypeScriptならCommonJSが多いですね。
What type of modules does your project use?
❯ JavaScript modules (import/export)
  CommonJS (require/exports)
  None of these
  • 使用フレームワークの選択
    ReactやVueを使っている場合は、それに対応したプラグインを自動で追加してくれます。
Which framework does your project use?
❯ React
  Vue.js
  None of these
  • TypeScriptの使用有無
    @typescript-eslint/parser や関連プラグインの導入が必要になります。
Does your project use TypeScript?
❯ No
  Yes
  • 実行環境の選択
    ブラウザ用かNode.js用かで、環境変数(env)を設定します。
Where does your code run?
❯ Browser
  Node
  • 設定ファイルの形式
    .eslintrc.js などの形式を選択。JavaScript形式ならコメントも書けて柔軟です。
What format do you want your config file to be in?
❯ JavaScript
  YAML
  JSON
  • 必要な依存パッケージの自動インストール
    eslint-plugin-react や eslint-config-airbnb などが自動でインストールされます。
Would you like to install them now with npm?
❯ Yes
  No
  • マネージャの選択
    依存パッケージのインストールに使う「パッケージマネージャー」を選択
Which package manager do you want to use? ...
> npm
  yarn
  pnpm
  bun

実行後に設定されるファイル例(eslint.config.mjs)

import js from "@eslint/js";
import globals from "globals";
import pluginReact from "eslint-plugin-react";
import { defineConfig } from "eslint/config";

export default defineConfig([
  { files: ["**/*.{js,mjs,cjs,jsx}"], plugins: { js }, extends: ["js/recommended"], languageOptions: { globals: globals.browser } },
  pluginReact.configs.flat.recommended,
]);

サンプルコードでのトライ

  • サンプルコード:test.js(保存前)
  • サンプルコード:test.js(保存後)

Prettierとの連携

ESLintはコードの「品質」をチェックしますが、「整形」はPrettierが得意です。両者を連携させることで、最強の開発環境が整います。

  • コマンドによるインストール
    • CLIやCI/CDで整形し、ESLintと連携
    • eslint-config-prettier: ESLintとPrettierの競合ルールを無効化
    • eslint-plugin-prettier: Prettierルール違反を ESLint に報告
npm install --save-dev prettier eslint-config-prettier eslint-plugin-prettier
  • VSCode拡張機能でのprettierインストール
  • プロジェクトフォルダ内に .prettierrc を作成
  • eslint.config.mjs に Prettier連携を追加
  • VSCodeで保存時に自動整形する設定
    .vscode/settings.json に以下を追加
  • カレントフォルダ以下の全てのファイルを整形する場合
    以下のコマンドを実行する
npx prettier --write .

ESLint & Prettier 連携確認

  • 整形前のコード
    • インデントが不統一
      • スペース数を統一(4スペース)
    • セミコロンがない
      • 自動で追加
    • ダブルクォート
      • シングルクォートに変更
    • オブジェクトのスペース
      • 25の前に半角スペースを入れて整形
    • 配列のスペース
      • [“Linux”, …] → [ ‘Linux’, … ]の様に整形
  • 整形後(保存時)のコード
    整形前コードの整形項目が全て反映されている
    • ファイルが保存状態になっていないのは、コメントまでも整形される為整形後にコメントを記入しました。コメントは行の上に記述した方が良いでしょう。

まとめ

ESLintは以下の点で効率化に貢献可能です。

  • バグの早期発見
  • コードスタイルの統一
    • レビュー時の「見た目の指摘」を排除し、本質的な議論に集中できる
  • 自動修正による時短
  • Prettierとの連携で整形と品質チェックを分離
  • プロジェクトごとの柔軟なルール設計

以上の様に、ESLintは「コードの見た目」だけでなく、「設計・保守性・安全性」にも踏み込んだチェックが可能です。

  • 「Prettier」の詳細については、以下の記事で紹介しています。是非参考にして下さい。 

 参考:VSCodeでコード整形を自動化。 Prettierの使い方完全ガイド!

タイトルとURLをコピーしました