このセクションの内容は、以下のリンクの内容を基にしており、CC BY 4.0 ライセンスの対象となります。
特に明記されていない限り、以下の内容は、元のコンテンツに基づいた修正と削除の結果であるとみなすことができます。
いくつかの実験的機能を有効にして試すことができます。
object
マイナーリリースでは、Rspackはこれらの実験的機能のAPIに変更を加えることがあり、リリースノートにこれらの変更の詳細な説明が記載されます。そのため、実験的機能を使用している場合は、マイナーリリースノートにご注意ください。
boolean
false
更新された仕様に従って新しいWebAssemblyをサポートします。これにより、WebAssemblyモジュールが非同期モジュールになります。
experiments.futureDefaultsがtrue
に設定されている場合、デフォルトで有効になります。
boolean
true
有効にすると、Rspackは可能な限りECMAScriptモジュール構文を出力します。例えば、チャンクの読み込みには`import()`、チャンクデータの公開にはESMエクスポートなどが使用されます。
boolean
false
有効にすると、RspackはネイティブCSSサポートと、CSS関連のパーサーおよびジェネレーターオプションを有効にします。
module.parser["css/auto"]
module.parser.css
module.parser["css/module"]
module.generator["css/auto"]
module.generator.css
module.generator["css/module"]
基本例
次のメジャーRspackのデフォルトを使用し、問題のある箇所には警告を表示します。
トップレベルawaitのサポートを有効にします。トップレベルawaitは、ModuleTypeがjavascript/esm
であるモジュールでのみ使用できます。
デフォルトで有効になっており、この設定で無効にすることができます。
boolean | LazyCompilationOptions
false
遅延コンパイルを有効にします。これにより、多ページアプリケーション(MPA)や大規模なシングルページアプリケーション(SPA)の開発時の起動パフォーマンスを大幅に向上させることができます。たとえば、エントリーポイントが20個ある場合、アクセスされたエントリーポイントのみがビルドされます。あるいは、プロジェクトに多くのimport()
文がある場合、import()
によって参照される各モジュールは、実際にアクセスされたときのみビルドされます。
trueに設定すると、遅延コンパイルはエントリーモジュールとimport()
によって参照されるモジュールの両方にデフォルトで適用されます。設定オブジェクトを使用して、エントリーのみ、またはimport()
のみに適用するかどうかを決定できます。entries
オプションはエントリーへの適用を決定し、import()
オプションはimport()
への適用を決定します。
さらに、どのモジュールを遅延コンパイルするかをより細かく制御するために、test
パラメータも設定できます。test
パラメータには、遅延コンパイルする必要があるモジュールのみと一致する正規表現を指定できます。また、入力の型が'Module'で、遅延コンパイルロジックの条件を満たすかどうかを示すブール値を返す関数にすることもできます。
現在の遅延コンパイルはWebpackの実装に準拠しており、まだ実験段階です。一部のシナリオでは、遅延コンパイルが期待通りに動作しない場合や、パフォーマンスの向上がわずかしかない場合があります。
number | ListenOptions
Rspack独自の開発サーバーを使用せず、独自のサーバーを開発サーバーとして使用する場合、一般的にHMRなどの機能を有効にするために、エントリー設定に別のクライアントモジュールを追加する必要があります。これらのクライアントモジュールは、test
を設定して遅延コンパイルから除外するのが最善です。
除外せず、エントリーの遅延コンパイルを有効にすると、このクライアントはページに初めてアクセスした際にコンパイルされないため、有効にするには追加のリフレッシュが必要です。
例:
boolean
false
レイヤー機能を有効にするかどうかを制御します。レイヤーは、モジュールグラフ内のモジュールから始まる部分グラフ内のすべてのモジュールに識別子プレフィックスを追加して、異なるレイヤーのモジュールと区別することができます。例:
index.js
モジュールのlayer
はデフォルトでnull
であり、そのidentifier
は./index.js
です。これにlayer = 'client'
を設定すると、そのidentifier
は(client)/./index.js
になります。この時点で、これら2つの異なるレイヤーのindex.js
モジュールは、一意のidentifier
が異なるため、別個のモジュールとして扱われます。その結果、最終的な出力には両方のモジュールの成果物が含まれます。
デフォルトでは、モジュールのレイヤーはnull
であり、親モジュールのレイヤーを継承します。entryOptions.layer
を使用してエントリーモジュールにレイヤーを追加し、module.rule[].layer
を使用して一致するモジュールにレイヤーを追加できます。さらに、module.rule[].issuerLayer
を使用して親モジュールのレイヤーに基づいて一致させることができます。
型: object
デフォルト: 詳細については以下のオプションを参照してください。
Rspackの将来のデフォルトオプションを有効にするかどうかを制御するために使用されます。詳細についてはこちらをご覧ください。
現在使用されているRspack情報を生成されたアセットに注入するために使用されます。
version
: Rspackのバージョンを指定するために使用され、@rspack/core/package.json
のversion
フィールドをデフォルトとします。bundler
: パッケージングツールの名前を指定するために使用され、デフォルトはrspack
です。force
: Rspack情報の注入を強制するかどうかを指定します。これはランタイムモジュールとしてチャンクに追加され、デフォルトではtrue
に設定され、注入が強制されます。強制的に注入する項目を選択するために配列を使用できます。force
をfalse
に設定することで、デフォルトの注入を無効にできます。その後、注入はコード内で__rspack_version__
と__rspack_unique_id__
が検出された場合にのみ行われます。
__rspack_version__
: バージョン情報を注入します。__rspack_unique_id__
: バンダーの一意のIDを注入します。