Prettier vs dprint: CIのフォーマッターにはどちらを選ぶ?
Prettierは広く普及したフォーマッターで、dprintはPrettier互換プラグインを使える高速でプラガブルなRust/Wasm製フォーマッターです。
PrettierはJS/TSや多くの言語における事実上の主張の強いフォーマッターです。dprintはRustで書かれたプラガブルなフォーマットプラットフォームで、速度と設定性を求めてWasmプラグイン(Prettier互換のものを含む)を実行します。
| Prettier | dprint | |
|---|---|---|
| 実装 | JavaScript | Rust(Wasmプラグイン) |
| 速度 | 遅い | 速い |
| プラグインモデル | Prettierプラグイン | Wasmプラグイン(Prettier互換を含む) |
| 設定 | 主張が強く、オプションは少ない | より設定可能、言語ごと |
| 採用状況 | 広く普及 | 拡大中 |
CIでは
format --checkステップはpushのたびに実行されます。dprintはこれを高速化し、インクリメンタルなフォーマットとキャッシュをサポートします。Prettier互換のプラグインを実行できるため出力を近づけられる一方、言語ごとにより多くの設定も提供します。Prettierは依然として最も広く採用されている選択肢で、ほぼ普遍的なエディタとエコシステムのサポート、そして最も幅広い言語プラグインのカバレッジを持ちます。
移行の手間
フォーマットの差分を吸収するため、dprintをリポジトリ全体に1つのコミットで適用し、その後CIで強制しましょう。churnを最小化するためPrettier互換プラグインを使い、dprintが提供しないプラグインに依存している場合はPrettierを残しましょう。
結論
キャッシュと豊富な設定(そしてPrettierにほぼ近い出力)でより高速なformat checkが欲しい: dprint。最大の普及度とエディタ/プラグイン対応が欲しい: Prettier。切り替える際は1つのコミットで再フォーマットしましょう。
関連ガイド
Prettier vs Biome: Which Formatter for CI?Prettier vs Biome for CI: format speed, compatibility, and all-in-one tooling. Which formatter keeps your pip…
ESLint vs Oxlint: Which Linter for CI?ESLint vs Oxlint for CI: lint speed, rule coverage, plugins, and adoption. Which JavaScript linter keeps your…
How to Speed Up GitHub Actions: 9 High-Impact TacticsMake GitHub Actions faster: caching, parallelization, test splitting, Docker layer caching, slimmer images, a…