Rspack 2.0
Rspack 2.0 が正式にリリースされた。rspack-react-10k-benchmark の測定では、本番ビルド(キャッシュなし)が 1.0 の 5.6 秒に対し 2.0 は 3.1 秒、キャッシュ利用時は 5.6 秒から 1.4 秒、HMR は 1.0 の 128ms から 2.0 は 118ms となっている。永続キャッシュを有効にし SWC 系 minimizer プラグインのキャッシュを再利用したヒット時は、ビルドがおおよそ半分になる。
@rspack/dev-serverの既定で引き込む依存は 192 件から 1 件に減少し、@rspack/coreは 8 から 1 件、@rspack/cliはゼロ依存。@rspack/dev-serverの導入サイズは 15MB から 1.4MB に縮小した。- CommonJS
requireや動的 import 結果の静的解析の強化、compiler annotations(#__NO_SIDE_EFFECTS__等、いまはexperiments.pureFunctions前提)、Module Federation のsharedにおける tree shaking など、出力最適化が広がった。 - コア系 npm パッケージは pure ESM のみとなり、ESM 生成時は未知の
import.metaプロパティを既定で保持する。import.defer/import.meta.main周りのサポート拡大や、output.library.typeのmodern-moduleによるライブラリ向け ESM 出力の改善がある。 - React Server Components 向けの実験的なローレベルサポート(
"use client"/"use server"、コンパイル時チェック、CSS、HMR など)が入った。 - トップレベル
targetから内蔵ローダーと minimizer へ目標環境を伝播する。builtinswc-loaderのdetectSyntax: 'auto'、package.jsonimportsによる#/解決、CSS パーサのresolveImport、optimization.moduleIdsのhashed、splitChunks のenforceSizeThresholdなど、設定の簡素化と分割の手掛かりが増えた。
optimization.moduleIds に hashed を指定し、パスから短い安定ハッシュをモジュール ID に使う例は次のとおりである。
js
export default {
optimization: {
moduleIds: 'hashed',
},
};v1 からの切り替えでは破壊的変更が含まれる。Rsbuild も 2.0 が Rspack 2.0 に合わせて出ており、エコシステム側の対応状況は各プロジェクトの案内に従う必要がある。