Skip to content
Latchkey

Prettier vs dprint: CIのフォーマッターにはどちらを選ぶ?

Prettierは広く普及したフォーマッターで、dprintはPrettier互換プラグインを使える高速でプラガブルなRust/Wasm製フォーマッターです。

PrettierはJS/TSや多くの言語における事実上の主張の強いフォーマッターです。dprintはRustで書かれたプラガブルなフォーマットプラットフォームで、速度と設定性を求めてWasmプラグイン(Prettier互換のものを含む)を実行します。

Prettierdprint
実装JavaScriptRust(Wasmプラグイン)
速度遅い速い
プラグインモデルPrettierプラグインWasmプラグイン(Prettier互換を含む)
設定主張が強く、オプションは少ないより設定可能、言語ごと
採用状況広く普及拡大中

CIでは

format --checkステップはpushのたびに実行されます。dprintはこれを高速化し、インクリメンタルなフォーマットとキャッシュをサポートします。Prettier互換のプラグインを実行できるため出力を近づけられる一方、言語ごとにより多くの設定も提供します。Prettierは依然として最も広く採用されている選択肢で、ほぼ普遍的なエディタとエコシステムのサポート、そして最も幅広い言語プラグインのカバレッジを持ちます。

移行の手間

フォーマットの差分を吸収するため、dprintをリポジトリ全体に1つのコミットで適用し、その後CIで強制しましょう。churnを最小化するためPrettier互換プラグインを使い、dprintが提供しないプラグインに依存している場合はPrettierを残しましょう。

結論

キャッシュと豊富な設定(そしてPrettierにほぼ近い出力)でより高速なformat checkが欲しい: dprint。最大の普及度とエディタ/プラグイン対応が欲しい: Prettier。切り替える際は1つのコミットで再フォーマットしましょう。

関連ガイド