Prettier
link: https://prettier.io/
コードフォーマッター(ソースコードを整形してくれるツール)のこと。読み方はプリティア。
何故コードフォーマッタを利用するのか(コードを整形するのか)
-
ソースコードの品質を保つため(コードのスタイルの一貫性を保つため)
-
コードレビュー時に、設計や命名などの重要な箇所に集中するため(コードのスタイルの指摘に時間を割くのを防ぐため)
-
複数のメンバーが各自の整形ルールを適用し、更新する度に余計な差分が発生することを防ぐため
-
ソースコードを綺麗にするための労力(スタイル定義の議論や時間)を費やさなくて済むため
-
ツールに任せられることはツールに任せてしまった方が今後楽になるため
Installation
- npm
- yarn
- pnpm
npm install --save-dev prettier @trivago/prettier-plugin-sort-imports
yarn add --dev prettier @trivago/prettier-plugin-sort-imports
pnpm add --save-dev prettier @trivago/prettier-plugin-sort-imports
Configuration
ヒント
import 順序にも対応した例
.prettierrc
{
"singleQuote": true,
"importOrderSeparation": true,
"importOrderSortSpecifiers": true,
"importOrder": [
"<THIRD_PARTY_MODULES>",
"^@docusaurus/(.*)$",
"^@site/(.*)$",
"^[./]"
],
"plugins": ["@trivago/prettier-plugin-sort-imports"]
}
自動設定(husky lint-staged)
自動で pre-commit にフックして整形を行うための設定を行う。
- npm
- yarn
- pnpm
npm install --save-dev husky lint-staged
yarn add --dev husky lint-staged
pnpm add --save-dev husky lint-staged
- husky(Git のコミット時やプッシュ時に指定したコマンドを実行できる)
- lint-staged(Git のステージングに追加されたファイルにのみに ESLint などのリントを実行できる)
以下のコマンドで husky を初期化
npx husky init
pre-commit フックをlint-stagedに書き換え
.husky/pre-commit
- npm test
+ npx lint-staged
package.json に lint-staged の設定を追加
ヒント
stylelint や eslint の設定付きの例
package.json
{
"lint-staged": {
"*.{js,css,md,ts,tsx,json,scss}": "prettier --write",
"*.{scss}": "stylelint --fix",
"*.{js,ts,tsx}": ["eslint --fix --max-warnings 0 --debug"]
}
}
危険
コード規約違反がある場合はコミットできません