概要
-
eslint-plugin-prettier が非推奨になったらしい。
- 以下の要件を満たしつつ、ESLint の config から Prettier を分離したい。
- VSCode からフォーマッタを実行できる。
- 非 VSCode 民でも npm script からフォーマッタを実行できる。
- CI でフォーマッタ未適用コードをエラーにできる。
TL;DR
src: https://github.com/arx-8/try-separate-eslint-and-prettier/commit/0d0f92201ca2102f20893b26fd23a902621aba41
やったこと
VSCode からフォーマッタを実行
- 以下の通り移行。
- prev: 拡張機能
dbaeumer.vscode-eslint + .eslintrc.js
- next: 拡張機能
esbenp.prettier-vscode + .prettierrc
- 設定周りについて。
-
esbenp.prettier-vscode の設定値 prettier.prettierPath で、プロジェクトに install した prettier を使うようにする。
- 設定値
editor.defaultFormatter にフォーマッタとして拡張機能 esbenp.prettier-vscode を指定したので、設定値 editor.formatOn* で prettier を実行できるようになった。
非 VSCode 民でも npm script からフォーマッタを実行
CI でフォーマッタ未適用コードをエラーにする
おまけ: ESLint + Prettier で全部 sort する
TL;DR
sort 対象と package 名
| sort 対象 |
package 名 |
| import 文 |
prettier-plugin-import-sort + import-sort-style-module |
| Object のキー |
eslint-plugin-sort-keys-fix |
| Object destructuring assignment のキー |
eslint-plugin-sort-destructure-keys |
| type/interface 宣言のキー |
eslint-plugin-typescript-sort-keys |
- これで「リーダブルなキーの並び順とは」とか悩む必要がなくなる。
-
eslint-plugin-simple-import-sort ではなく prettier-plugin-import-sort を選択している理由は、prettier との相性のため。 eslint-plugin-simple-import-sort の方は、2 回保存しないと auto fix しきれないケースがある。
- 恐らく prettier -> eslint の実行順になった場合に、
eslint-plugin-simple-import-sort による prettier 違反コードが生成されてしまう。
- なんだかんだ
eslint-plugin-prettier は合理的だったのではと思わんでもない。
-
organizeImports では非 VSCode 民が救われないため、ぜひ prettier-plugin-import-sort がもっと普及してほしい。