2023年11月2日
Rspack は Node.js 14 のサポートを終了しました。Node.js 16 以降が必要です。
@rspack/core
は、直接の依存関係ではなく、@rspack/cli
の peer dependency になりました。つまり、@rspack/cli
と共に @rspack/core
を手動でインストールする必要があります。これにより、Rspack は webpack とより密接に連携します。長期的には、@rspack/cli
の位置付けは、すぐに使えるソリューションではなくなります。 @rspack/cli
を webpack-cli と連携させ、webpack-cli
で @rspack/core
を直接使用できるようにすることもあります。すぐに使えるソリューションとしては、Rsbuild をお勧めします。
v0.4.0 では、experiments.rspackFuture.disableTransformByDefault
がデフォルトで有効になっています。従来の動作が必要な場合は、このオプションを false
に手動で設定してください。
この機能は、主に3つのカテゴリの問題に対処します。builtins コード変換機能、target、およびカスタム Rule.type です。
rspackExperiments.relay
に移動しましたjsc.transform.react
に移動しましたrspackExperiments.emotion
に移動しましたrspackExperiments.import
に移動しましたjsc.parser.decorators
に移動しましたjsc.env
に移動しましたnode_modules
を含む)をダウングレードしません以下のタイプは削除されました
"typescript"
"jsx"
"tsx"
JS関連のタイプは、以下のみが保持されます
"javascript/auto"
"javascript/esm"
"javascript/dynamic"
完全な移行ガイドについては、こちら を参照してください。
以前の議論はこちら で確認できます。
v0.4.0 では experiments.rspackFuture.disableTransformByDefault
がデフォルトで有効になっているため、builtin.react.refresh
も非推奨になりました。React Fast Refresh を有効にするには、@rspack/plugin-react-refresh
を使用することをお勧めします。
詳細はこちら をご確認ください。
builtin:sass-loader
は非推奨になりました。使用している場合は、sass-loader
に移行してください。Rspack は v0.5.0 で builtin:sass-loader
を削除します。
experiments.incrementalRebuild
は非推奨になりました。Rspack は v0.5.0 でこれを削除します。
以前は、@rspack/core からの再エクスポートによって、誤ってエクスポートされるべきではない API がエクスポートされていました。このリファクタリングにより、@rspack/core からのエクスポート API をクリーンアップしました。
これは何も壊すことはありませんが、意図せずにエクスポートされた API を使用している場合は、問題が発生する可能性があり、Rspack をハッキング的な方法で使用している可能性があります。
このリファクタリングによって削除された API が本当に必要な場合は、Rspack リポジトリで issue を作成してください。
builtins.devFriendlySplitChunks
と experiments.newSplitChunks
の非推奨化Webpack の分割チャンク実装に完全に移行するために、これらのフィールドは非推奨になりました。Rspack は v0.5.0 でこれらのフィールドを削除します。
新しいリゾルバーがデフォルトで有効になりました。
新しいリゾルバーは、enhanced-resolve のすべてのテストスイートに合格しました。以前の実装よりも5倍高速で、enhanced-resolve よりも28倍高速です。
新しいリゾルバーは、tsconfig.json
の compilerOptions.paths
と references
フィールドを読み取るように設定でき、ネストされたパスエイリアスをより適切にサポートします。詳細は API resolve.tsConfig を参照してください。
新しいリゾルバーをオプトアウトするには、experiments.rspackFuture.newResolver
を false
に設定します。
Rspack 0.3.14 から Rspack 0.4.0 に移行する方法を示す 移行例 があります。
@rspack/cli
または Rsbuild
を選択しますか?アプリケーションが CSR アプリケーションの場合は、Rspack を自分で設定する代わりに Rsbuild を使用することを強くお勧めします。Rsbuild は @rspack/cli
よりもはるかに使いやすいためです。
バージョン 0.4.0 以降、Rspack は Node.js 14 をサポートしなくなりました。Node.js 16 以降が必要です。
@rspack/cli
と共に @rspack/core
を手動でインストールするbuiltin:swc-loader
を使用してモジュール変換をサポートするバージョン 0.4.0 以降、Rspack はデフォルトでファイルを変換しなくなりました。次の設定で古い変換動作を有効にすることはできます
ただし、現在は builtin:swc-loader
を使用してファイルを変換することをお勧めします。詳細は デフォルト変換の非推奨化 を参照してください。
@rspack/plugin-react-refresh
を使用するデフォルトの変換を無効にすると builtin.react.refresh
は機能しないため、@rspack/plugin-react-refresh
を使用して高速リフレッシュを有効にする必要があります。詳細は builtin.react.refresh の非推奨化 を参照してください。
v0.4.0 において、Rspack はいくつかの組み込みオプションを非推奨とし、組み込みプラグインに移行しました。
現在、Rspack の内部プラグインは2つのカテゴリに分類されます。
元の builtins.define
は、次のように移行できます。
builtins.html
の場合は、HtmlRspackPlugin に直接移行できます。
builtins.html
に複数の設定がある場合は、複数のプラグインインスタンスを作成できます。
builtins.copy
の場合は、CopyRspackPlugin に直接移行できます。
元の builtins.minifyOptions
については、SwcJsMinimizerRspackPlugin を提供しています。
その他の組み込みオプションは、Rspack の 組み込みプラグイン を参照して移行するか、v0.4.0 にアップグレードした後に CLI のプロンプトに従って完了できます。