ESLint と Prettier の設定に関して検索するとマジで情報が錯綜しすぎてどれが正解か分からないので、諦めて式ドキュメントを読みに行ったところ、普通に結論が書いてたので共有します。
叶えたいこと。
eslint --fix
は使わない)他の記事と書いてあることが逆なこともあります。
つまり Prettier は CLI でコマンドを叩くか、VSCode から実行する。
editor.formatOnSave
を true
にしてフォーマッタを Prettier に変更する。.prettierrc.json
) を VSCode に読み取らせる。以上です。 お疲れ様でした。
というわけにもいかないので、公式ドキュメントを引用していきながら書きます。
eslint-config-prettier は ESLint の整形設定 ( Prettier と競合する設定 ) を全てオフにしてくれます。
npm や yarn でインストールした後、 ESLint の設定ファイルに追記します。
インストールします。
$ yarn add -D eslint-config-prettier
.eslintrc.js
の extends
末尾に以下を追記。
prettier
以外は必要に応じて抜き差ししてください。
module.exports = {
extends: [
'prettier', // 最低限必要
'prettier/@typescript-eslint',
'prettier/react'
'prettier/vue',
'prettier/babel',
'prettier/flowtype',
'prettier/standard',
'prettier/unicorn',
],
};
extends
は別の設定ファイルを呼び出している記述です。
つまり、 prettier*
に ESLint の設定を上書きしてもらわねければないので、他の extends
を記述している場合はその後ろに追記するようにしてください。
ESLint 側の設定は終わりです。
eslint:recommended
など、他のコード品質ルール等に関しては都度設定してください。
また、extends
が何の設定をしているか見たい場合は、 node_modules/eslint-*
のディレクトリの中身を参照してください。多分大体 index.js
に書いてます。
要約すると「 ** Pretter はエディタで大体対応してるからわざわざ ESLint から呼んでると、下線増えてウザいし重くなるからやめとけ** 」て感じです。
Prettier 公式ドキュメントより参考:
When searching for both Prettier and your linter on the Internet you’ll probably find more related projects. These are generally not recommended, but can be useful in certain circumstances.
First, we have plugins that let you run Prettier as if it was a linter rule:
- eslint-plugin-prettier
- tslint-plugin-prettier
- stylelint-prettier
These plugins were especially useful when Prettier was new. By running Prettier inside your linters, you didn’t have to set up any new infrastructure and you could re-use your editor integrations for the linters. But these days you can run prettier --check . and most editors have Prettier support.
The downsides of those plugins are:
- You end up with a lot of red squiggly lines in your editor, which gets annoying. Prettier is supposed to make you forget about formatting – and not be in your face about it!
- They are slower than running Prettier directly.
- They’re yet one layer of indirection where things may break.
Integrating with Linters: https://prettier.io/docs/en/integrating-with-linters.html
じゃあ整形はどうするのかというと次項。
$ yarn run prettier --write .
setting.json
に以下を追記します。
{
"editor.formatOnSave": true, // 保存時に自動整形
"editor.codeActionsOnSave": {
// 保存時のアクション設定
"source.fixAll.eslint": true // ESLintが走るようにする。ESLintの設定をちゃんとしてれば整形はされない。
},
"editor.defaultFormatter": "esbenp.prettier-vscode", // フォーマッタにPrettierを指定
"prettier.configPath": ".prettierrc.json" // Prettierの設定ファイルを読み込む
}
ショートカットキーを設定する方法もありますが、わざわざ無駄なショートカットキーを登録するのもアホらしいので、全ファイル横断したい場合は CLI から叩くほうがいいでしょう。
npm scripts に登録しとけば長いコマンド入力しなくても済みますね。
一括でフォーマッターの設定をするのが嫌な場合は言語ごとにも指定できます。
"editor.formatOnSave": false,
"[javascript]": {
"editor.formatOnSave": true,
},
prettier.configPath
はフォーマット時の VSCode 側の拡張機能設定を上書きするために設定します。
コマンドを実行しない場合は、VSCode 側で設定して setting.json
を共有してもいいと思います。
.prettierrc*
はプロジェクトに合わせて公式ドキュメントのオプション一覧を見ながら書けばいいと思います。
.prettierrc*
).editorconfig
(これよくわからん)setting.json
)なお Prettier 設定ファイルが存在する場合、VSCode の設定は使用 されない 。
まあ中途半端に設定混在されても困りますからね。
Prettier 公式 Github README より参考:
Visual Studio Code Settings
You can use VS Code settings to configure prettier. Settings will be read from (listed by priority):
- Prettier configuration file
- .editorconfig
- Visual Studio Code Settings (Ignored if any other configuration is present)
NOTE: If any local configuration file is present (i.e. .prettierrc) the VS Code settings will NOT be used.
Prettier Formatter for Visual Studio Code: https://github.com/prettier/prettier-vscode#user-content-visual-studio-code-settings
$ yarn add -D eslint-config-prettier
.eslintrc.js
の extends
末尾に以下を必要に応じて追記。module.exports = {
extends: [
'prettier', // 最低限必要
'prettier/@typescript-eslint',
'prettier/react'
'prettier/vue',
'prettier/babel',
'prettier/flowtype',
'prettier/standard',
'prettier/unicorn',
],
};
setting.json
に以下を追記します。{
"editor.formatOnSave": true, // 保存時に自動整形
"editor.codeActionsOnSave": {
// 保存時のアクション設定
"source.fixAll.eslint": true // ESLintが走るようにする。ESLintの設定をちゃんとしてれば整形はされない。
},
"editor.defaultFormatter": "esbenp.prettier-vscode", // フォーマッタにPrettierを指定
"prettier.configPath": ".prettierrc.json" // Prettierの設定ファイルを読み込む
}
はい、今度こそお疲れ様でした。
これで当初のミッションは果たせたと思います。
叶えたいこと。
- Prettier には整形をやらせる。 (ソースの統一性を保つ。
eslint --fix
は使わない)- ESLint にはコード品質チェック (バグチェック) をやらせる。
この記事が役に立ったと思ったら拡散して、みんなに教えてあげてください。
英語はブロンズなので「ここは間違ってる」や「分かりにくい」と思ったらご指摘ください。
© Copyright 2025, empathy