この用語をシェア
Prettierとは
Prettier(プリティア)は、自動コードフォーマッターです。JavaScript、TypeScript、CSS、HTML、JSON、Markdown、Yamlなど、多くのプログラミング言語とファイル形式に対応し、事前に定義されたルールに基づいてコードを自動的に整形します。「Opinionated(独断的)」なツールとして設計されており、フォーマットに関する議論を排除し、開発者が本質的な作業に集中できる環境を提供します。
2017年にJames Long(当時Facebook)によって開発され、「設定よりも規約」の哲学に基づいて、最小限の設定で美しく一貫したコードフォーマットを実現します。現在ではモダン開発環境の標準ツールとして広く採用されています。
Prettierの主な特徴
1. ゼロ設定・最小設定
複雑な設定ファイルを書く必要がなく、インストールするだけで即座に使用開始できます。重要な設定項目のみが提供され、フォーマットスタイルに関する無駄な議論を排除します。
2. 多言語サポート
JavaScript、TypeScript、JSX、CSS、SCSS、Less、HTML、JSON、Markdown、YAML、GraphQLなど、20以上の言語とファイル形式に対応し、一つのツールで包括的なフォーマットが可能です。
3. エディタとビルドツール統合
VSCode、Sublime Text、Atom、Vim、WebStorm、Webpack、Rollup、Gulpなど、主要なエディタとビルドツールとの統合が標準でサポートされています。
4. 高速で信頼性の高い処理
AST(抽象構文木)ベースの解析により、構文を壊すことなく安全にフォーマットを実行し、大規模なコードベースでも高速に動作します。
利用場面
👥 チーム開発での統一
複数人での開発でコードスタイルを完全統一し、コードレビューでフォーマットに関する指摘を排除し、本質的な議論に集中できます。
⚡ 開発効率の向上
手動でのインデント調整や改行位置の調整が不要になり、ファイル保存時の自動フォーマットで開発スピードが向上します。
🔄 レガシーコードの整備
既存プロジェクトのコードスタイルをまとめて統一し、保守性とコードの可読性を大幅に改善できます。
基本的な使い方
インストール
npmまたはyarnでグローバルまたはローカルにインストール:
npm install --save-dev prettier
# グローバルインストール
npm install -g prettier
基本的なコマンド
npx prettier your-file.js
# ファイルを直接書き換え
npx prettier --write your-file.js
# ディレクトリ全体をフォーマット
npx prettier --write "src/**/*.{js,jsx,ts,tsx,css,md}"
# チェックのみ(CI/CD用)
npx prettier --check "src/**/*.js"
設定ファイル(.prettierrc)
必要に応じて最小限の設定をカスタマイズ:
"semi": false,
"singleQuote": true,
"printWidth": 100,
"tabWidth": 2,
"trailingComma": "es5"
}
VSCodeでの自動実行設定
settings.jsonで保存時の自動フォーマットを有効化:
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
関連技術との関係
- ESLint:eslint-config-prettierでルール競合を解決し、連携利用
- Git hooks:pre-commitフックで自動フォーマット実行
- CI/CD:GitHub ActionsなどでPrettierチェックを自動化
- VSCode:公式拡張でリアルタイムフォーマット機能
- Webpack/Vite:ビルドプロセスに統合して自動実行
学習のポイント
🎯 効率的な学習手順
- 基本コマンドの習得:CLIでの基本的なフォーマット実行をマスター
- エディタ統合:VSCodeなどで保存時自動フォーマット環境を構築
- 設定のカスタマイズ:プロジェクトに適した最小限の設定ファイル作成
- チーム導入:ESLintとの組み合わせとCI/CD統合で完全自動化
Prettierは、「フォーマットのことを考えない」ことを可能にする素晴らしいツールです。一度導入すると、コードの見た目に関する議論や手作業での調整から完全に解放され、より重要な設計やロジックに集中できるようになります。現代の開発チームにとって必須のツールといえるでしょう。