この記事ではESLint(静的検証ツール)とPrettier(コードフォーマッター)のインストールと設定方法、またこれらをVSCodeで使用する方法を紹介します。
1. ESLint
Documentation - ESLint - Pluggable JavaScript Linter
1-1. インストール
eslintをグローバルにインストール
$ npm install -g eslint
インストールを確認
$ eslint -v
1-2. 設定ファイル
eslintを使うには設定ファイルである.eslintrc.*
が必要です。
.eslintrc.*
で使えるファイル形式- JavaScript:
.eslintrc.js
- JSON:
.eslintrc.json
- YAML:
.eslintrc.yml
- JavaScript:
ここでは.eslintrc.json
を使用します。
設定ファイルの作成
- 方法1:直接
.eslintrc.*
を作成 - 方法2:
eslint --init
コマンドで対話形式で作成- 事前に
package.json
の作成が必要 - eslint --initは
npm init @eslint/config
と同じ
- 事前に
設定ファイルのプロパティ
.eslintrc.json
の例
{ "env": { "browser": true, "node": true, "es2022": true }, "extends": ["eslint:recommended", "prettier"], "overrides": [], "parserOptions": { "ecmaVersion": "latest", "sourceType": "module" }, "rules": {} }
env
extends
parserOptions
1-3. コマンドラインでESLintを実行
$ eslint yourfile.js
- 検証した結果、問題がなければ何も表示されない
- ESLint - Command Line Interface
1-4. VSCodeとの統合
VSCodeにvscode-eslintをインストール
2. Prettier
2-1. インストール
Prettierをローカルにインストール
$ npm install --save-dev --save-exact prettier
2-2. Prettierの実行
フォーマットの実行
$ npx prettier --write .
フォーマットの確認のみ
$ npx prettier --check .
2-3. ESLintとの統合
Prettier - Integrating with Linters
eslint-config-prettierをインストール
$ npm install --save-dev eslint-config-prettier
.eslintrc.json
に"prettier"
を追記
{ "extends": [ "some-other-config-you-use", "prettier" ] }
"extends"
の配列の最後に追加する
2-4. VSCodeとの統合
VSCodeにprettier-vscodeをインストールします。
次に、VSodeのデフォルトのフォーマッターをPrettierに設定し、ファイル保存時にフォーマットが実行されるように設定します。
設定方法1. settings.json
を直接編集する
settings.json
に以下を追記
{ "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true }, }
settings.json
の開き方shift + command + P
でコマンドパレットを開くopen settings
で検索Preferences: Open User Settings (JSON)
を選択
設定方法2. VSCodeの「設定」から設定する
cmd + ,
で「設定」を開くformat on save
で検索Editor: Format On Save
にチェックを入れるdefault formatter
で検索Editor: Default Formatter
をPrettier - Code formatter
に選択
この場合、settings.json
は以下のようになる。
{ "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, }
【参考】