Prettier

コードのフォーマットを自動的に統一するオピニオネイテッドなコードフォーマッター

開発ツール品質

Prettier とは

Prettier は、コードのフォーマットを自動的に統一するオピニオネイテッド (設定項目が少ない) なコードフォーマッターである。TypeScript、JavaScript、CSS、JSON、Markdown に対応。「フォーマットの議論をなくす」が設計思想。

ESLint vs Prettier

ツール 役割
ESLint コード品質 (バグ検出) 未使用変数、== の使用
Prettier コードフォーマット (見た目) インデント、改行、クォート
ESLint: 「この変数は使われていません」 → コードの問題
Prettier: 「セミコロンを付けます」 → 見た目の統一

設定

{
  "semi": true,
  "singleQuote": true,
  "tabWidth": 2,
  "trailingComma": "all",
  "printWidth": 100
}

設定項目は意図的に少ない。「タブ vs スペース」「セミコロンの有無」程度しか選べない。

Biome (Prettier の代替)

観点 Prettier Biome
速度 高速 (Rust 製)
機能 フォーマットのみ フォーマット + リンター
設定 .prettierrc biome.json
互換性 広い Prettier 互換 (97%)

pre-commit hook での自動フォーマット

{
  "scripts": {
    "format": "prettier --write .",
    "format:check": "prettier --check ."
  },
  "lint-staged": {
    "*.{ts,tsx,js,json,md}": "prettier --write"
  }
}

コミット前に自動フォーマットし、フォーマットの不統一を防ぐ。

CI での検証

- run: npx prettier --check .
# フォーマットされていないファイルがあれば CI が失敗

SAM テンプレートのフォーマット

Prettier は YAML もフォーマットできるが、SAM テンプレートの !Ref!Sub などの CloudFormation 固有構文で問題が起きる場合がある。YAML は .prettierignore で除外するか、専用のフォーマッターを使う。

フォーマッターの導入効果

コードレビューでフォーマットの指摘がなくなり、レビューの効率が上がる。全員が同じスタイルで書くため一貫性が保たれ、手動フォーマットが不要になり生産性が向上する。Git の差分からフォーマット変更のノイズがなくなり、実質的な変更だけが見えるようになる。

全体像を把握するには関連書籍も有用。

関連用語