Rspack の設定は webpack をベースに設計されているため、プロジェクトを webpack から Rspack へ簡単に移行できます。
このドキュメントは主に webpack 5 を使用しているプロジェクトを対象としています。Rspack の API と設定は webpack 5 に準拠しているためです。webpack 5 を使用していないプロジェクトについては、参照できる他の移行ガイドがあります。
プロジェクトディレクトリで、Rspack を devDependencies
としてインストールします。
これで、プロジェクトから webpack 関連の依存関係を削除できます。
vue-loader や fork-ts-checker-webpack-plugin を使用する場合など、webpack
を開発依存関係として保持する必要がある場合があります。
これは、これらのプラグインが webpack のサブパスを直接 import
し、webpack と結合しているためです。この問題が発生した場合は、これらのプラグインのメンテナにフィードバックを提供し、webpack
をオプションの依存関係にできるかどうかを問い合わせることができます。
ビルドスクリプトを更新して、webpack の代わりに Rspack を使用するようにします。
webpack.config.js
ファイルの名前を rspack.config.js
に変更します。
Rspack コマンドは、webpack コマンドと同様に -c
または --config
で設定ファイルを指定できます。ただし、webpack とは異なり、設定ファイルが明示的に指定されていない場合、Rspack はデフォルトで rspack.config.js
を使用します。
Rspack は現在、すべての webpack 設定をサポートしておらず、一部の設定はビルド出力に影響を与える可能性があります。ビルド出力の正確性を保証するために、Rspack はデフォルトで設定の厳密な検証を有効にしています。ただし、Rspack は段階的な移行を容易にするための緩いモードも提供しています。RSPACK_CONFIG_VALIDATE
環境変数を設定することで有効にできます。
Rspack は webpack の今後の機能の実装に積極的に取り組んでいるため、次に示すように、一部の設定のデフォルトは webpack 5 と異なります。
設定 | webpack デフォルト | Rspack デフォルト |
---|---|---|
node.global | true | 'warn' |
node.__filename | 'mock' | 'warn-mock' |
node.__dirname | 'mock' | 'warn-mock' |
Rspack でサポートされている設定については、Rspack の設定を参照してください。
Rspack は、webpack のほとんどの組み込みプラグインを実装しており、名前と設定パラメータは同じであるため、簡単に置き換えることができます。
たとえば、DefinePlugin の置換
Rspack でサポートされている webpack プラグインの詳細については、Webpack に合わせた組み込みプラグイン を参照してください。
Rspack は、webpack コミュニティプラグインのほとんどをサポートしており、現在サポートされていない一部のプラグインに対して代替ソリューションも提供しています。
Rspack と一般的な webpack コミュニティプラグインとの互換性の詳細については、プラグインの互換性 を参照してください。
Rspack のローダーランナーは webpack のローダー機能と完全に互換性があり、webpack ローダーの大部分をサポートしています。既存のローダーを変更せずに使用できます。ただし、最高のパフォーマンスを実現するには、次のローダーの移行を検討してください。
builtin:swc-loader
を使用すると、JavaScript と Rust の間の頻繁な通信を回避できるため、babel-loader
および外部 swc-loader
と比較して、パフォーマンスが向上します。
Babel プラグインを使用してカスタム変換ロジックが必要な場合は、babel-loader
を保持できますが、パフォーマンスの低下を防ぐために、使用を少ないファイルに制限することをお勧めします。
Rspack は、Webpack 5 の アセットモジュール を実装しており、パフォーマンスを向上させるために、file-loader
、url-loader
、および raw-loader
を置き換えるためにアセットモジュールを使用します。