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

Parcel 3アルファが公開、コアをRustの単体バイナリに刷新

## POINTS

  • Node不要の単体バイナリで、サイズは30MB未満。v2のインストール一式は約120MBだった。
  • ディスクキャッシュを厚くする設計をやめ、プラグインや設定の変更は全ビルドで取りこぼしを避ける。
  • .d.ts生成とJavaScriptのAPIは未搭載。アルファとしてparcel@nextでv2と並走させる段階である。

v2はSWCやLightning CSSなど一部だけをRust化していたが、コアはJavaScriptのままだった。v3は共有メモリを使うネイティブ実装にし、ディスクキャッシュを厚くする代わりに、最初のビルドを速くする。メモリ上の差分再ビルドは残し、プラグインや設定のように結果が安定しない変更は、無効化の追跡をやめて全ビルドする。古いキャッシュが残る不具合を減らす狙いだ。

HTML、CSS、JavaScript、TypeScript、SVG、画像に加え、Tailwind(PostCSSなし)、React Compiler、MDX、glob importはバイナリに同梱される。プラグインはRust、Go、Swift、C ABIに加え、QuickJS上のJavaScriptも動く。JSプラグインにネットワークはない。450ページのサイトでは、ページあたりのHTTPリクエストが64%減り、転送バイトは10%減ったとしている。

ライブラリビルドはpackage.jsonのexportsを読み、モジュールをまとめずファイルごとに出す。TypeScriptの.d.ts生成、カスタムのバンドラープラグイン、プログラムから呼ぶJavaScript APIは未実装だ。導入はparcel@next、またはparcel3コマンドでv2と並べて試せる。数字は同社の計測なので、自分のリポジトリで冷スタートを測るまで既定のビルドは変えない。