このセクションの内容は、以下のリンクの内容を元に作成されており、CC BY 4.0 ライセンスの対象となります。
特に明記されていない場合、以下の内容は元のコンテンツに基づいて修正および削除された結果とみなすことができます。
Rspack は、mode
に基づいて適切な最適化設定を選択します。また、optimization
を介して設定をカスタマイズすることもできます。
'natural' | 'named' | 'deterministic'
オプション | 説明 |
---|---|
natural |
使用順に数値 ID を使用します。 |
named |
デバッグしやすい、意味のあるコンテンツを ID として使用します。このオプションは、開発モードではデフォルトで有効になっています。 |
deterministic |
ハッシュ化されたモジュール識別子を ID として使用して、長期キャッシングのメリットを享受します。このオプションは、本番モードではデフォルトで有効になっています。 |
'named' | 'deterministic'
オプション | 説明 |
---|---|
'named' |
デバッグに適した、可読性の高い ID。このオプションは、開発モードではデフォルトで有効になっています。 |
'deterministic' |
コンパイル間で変更されない、短い数値 ID。長期キャッシングに適しています。このオプションは、本番モードではデフォルトで有効になっています。 |
バンドルを最小化するかどうか。
boolean
true
同じモジュールを含むチャンクをマージするかどうか。 optimization.mergeDuplicateChunks を false に設定すると、この最適化は無効になります。
Array<Plugin>
[new SwcJsMinimizerRspackPlugin(), new LightningCssMinimizerRspackPlugin()]
ミニマイザーをカスタマイズします。デフォルトでは、rspack.SwcJsMinimizerRspackPlugin
と rspack.LightningCssMinimizerRspackPlugin
が使用されます。 optimization.minimizer
が指定されている場合、デフォルトのミニマイザーは無効になります。
組み込みミニマイザーをカスタムオプションで使用します
boolean
true
コンパイルで生成された空のチャンクを削除します.
boolean | string | ((entrypoint: { name: string }) => string)
false
ランタイムチャンクの生成方法を制御するために使用されます。
true
または 'multiple'
に設定すると、各エントリポイントのランタイムのみを含むチャンクが追加されます。
'single'
に設定すると、すべてのエントリポイントのランタイムコードが単一の個別のチャンクに抽出されます。
アセットが処理された後、正しいアセットコンテンツハッシュを取得するために、追加のハッシュ計算パスを追加します。この機能は、本番モードではデフォルトで有効になります。
realContentHash が false に設定されている場合、内部データを使用してハッシュが計算され、アセットが同一である場合にハッシュが変更される可能性があります。
false | object
Rspack は、optimization.splitChunks
設定項目を使用してチャンクの分割をサポートしています。
動的にインポートされたモジュールでは、デフォルトで有効になっています。
無効にするには、false
に設定します。
この動作の設定に使用可能なオプションについては、SplitChunksPlugin ページを参照してください。
エクスポートが使用されていない場合、副作用がないとフラグが付けられたモジュールをスキップするために、Rspack に package.json またはルール内の sideEffects フラグを認識するように指示します。
sideEffects
は npm モジュールの package.json
ファイルに記述する必要があり、その npm モジュールを必要とする独自のプロジェクトの package.json
で sideEffects
を false
に設定する必要があるという意味ではないことに注意してください。
optimization.sideEffects
は、optimization.providedExports
が有効になっている必要があります。この依存関係にはビルド時間のコストがかかりますが、モジュールを削除するとコード生成が少なくなるため、パフォーマンスにプラスの影響があります。この最適化の効果はコードベースによって異なります。パフォーマンス向上の可能性があるため、試してみてください。
Rspack に手動で設定された sideEffects
フラグ(package.json
および module.rule.sideEffects
経由)のみを使用し、ソースコードを分析したくない場合
'flag'
値は、非本番ビルドではデフォルトで使用されます。
optimization.sideEffects
が true の場合、Rspack は副作用のないステートメントのみを含むモジュールにも副作用がないとフラグを付けます。
boolean
true
有効にすると、Rspack は、再エクスポートされたモジュールを含む、モジュールが提供するエクスポートを分析します。存在しないエクスポートを参照するメンバーをインポートすると、警告またはエラーが発生します。デフォルトでは、optimization.providedExports
は有効になっています。この分析はビルド時間を増加させます。開発モードでは、この設定を無効にすることを検討してください。無効にすると、SideEffects セクション で説明されているように、ランタイムの循環依存関係に関連するエラーが発生する可能性があります。
Rspack に、各モジュールに使用されるエクスポートを決定するように指示します。これは optimization.providedExports
に依存します。 optimization.usedExports
によって収集された情報は、他の最適化またはコード生成で使用されます。たとえば、使用されていないエクスポートは生成されず、すべての使用法に互換性がある場合、エクスポート名は単一文字の識別子にマングルされます。ミニマイザーのデッドコードの削除は tästä hyötyä 、使用されていないエクスポートを削除できます。
ランタイムごとに使用済みエクスポート分析からオプトアウトするには
optimization.mangleExports
を使用すると、エクスポートのマングリングを制御できます。
以下の値がサポートされています
オプション | 説明 |
---|---|
'named' | デバッグしやすい、意味のあるコンテンツを ID として使用します。このオプションは、開発モードではデフォルトで有効になっています |
'deterministic' | 長期キャッシングのメリットを得るために、ハッシュ化されたモジュール識別子を ID として使用します。このオプションは、本番モードではデフォルトで有効になっています |
true | 'deterministic' と同じです |
false | 元の名前を保持します。可読性とデバッグに適しています。 |
optimization.innerGraph
は、Rspack に変数代入のより詳細な分析を実行するかどうかを指示します。これにより、Rspack は使用されていないモジュールエクスポートを識別し、バンドルされた出力のサイズを削減できます。
例えば
ここでは、value
を value2
に代入しています。 value2
と value
はそれぞれ関数 f2
と f1
内でアクセスされますが、関数は呼び出されないため、value2
と value
は実際には使用されず、value
のインポートは削除できます。
Rspack に、単一のモジュールに安全に連結できるモジュールグラフのセグメントを見つけるように指示します。optimization.providedExports および optimization.usedExports に依存します。デフォルトでは、optimization.concatenateModules
は production
モードで有効になり、それ以外の場合は無効になります。
boolean | string
false
Rspack に process.env.NODE_ENV
を指定された文字列値に設定するように指示します。 optimization.nodeEnv
は、false に設定されていない限り、DefinePlugin を使用します。 optimization.nodeEnv
は、設定されている場合はmodeにデフォルト設定され、それ以外の場合は 'production'
にフォールバックします。
可能な値
process.env.NODE_ENV
に設定する値。process.env.NODE_ENV
の値を変更/設定しません。mode が 'none'
に設定されている場合、optimization.nodeEnv
はデフォルトで false
になります。
コンパイル中にエラーが発生した場合でもアセットを出力するには、optimization.emitOnErrors
を使用します。これにより、エラーが発生したアセットが出力されます。重大なエラーは、生成されたコードに出力され、ランタイムエラーが発生します。