本文へスキップ
MameTechNews
フロントエンド

Bun、Prettier互換の組み込みフォーマッタbun fmtを公開

## POINTS

  • Prettier 3.9.9ではTypeScriptが全件一致し、実リポジトリのPrettier比較は77.0%だ。置換前にbun fmt --checkで差分を確認する。
  • Astroなど専用プラグインが要る言語は、インストール済みのPrettierに戻る。未対応プラグインがあると対象ファイルを飛ばし、終了コード2になる。
  • 1.4.4はBrotli、TLS、WebSocket、bun installなどのセキュリティ修正も含む。Bunを実行環境にしているなら、整形の採否と別に更新する。

Bun 1.4.4で、JavaScriptやTypeScript、CSS、HTML、Vue、Svelte、Markdownなどを整形するbun fmtが使える。既存の.prettierrcやoxfmtの設定、.editorconfig、prettier-ignoreを読み、importの並べ替えも内蔵する。Tailwindのクラス順、package.jsonのキー順、Svelteは、これまで専用プラグインが担っていた処理を引き取る。

Prettier 3.9.9の整形テストでは、JavaScript 1,357件中1,356件、TypeScript 756件はすべて一致した。一方、330リポジトリで各プロジェクトのフォーマッタと比べると、oxfmtでは94.6%、Prettierでは77.0%がバイト単位で一致した。Prettier側の不一致の多くは、古い版、プラグイン、Markdownが原因だとBunは説明している。Astroのように専用プラグインが要る言語は、プロジェクトに入っているPrettierへ戻る。未対応プラグインがあると、対象ファイルを飛ばして終了コード2になる。

フロントエンドのCIでは、bun fmt --checkで差分を見てからformatスクリプトを差し替える。--stagedはコミット対象だけ整形して再ステージするので、lint-stagedを外す前に無視設定の結果を比べる。同じリリースはBrotli、TLS、WebSocket、bun installなどを含むセキュリティ修正も含む。Bunでサーバやインストールを動かしている環境は、フォーマッタの採否と別に1.4.4へ上げる。