Rspackの主要なコンパイルロジックはRust側で実行されます。安定性、パフォーマンス、アーキテクチャなどの要因により、フックを使用する際にRust側のコンパイルオブジェクトがJavaScript側に転送された後、これらのオブジェクトに対する変更はRust側には同期されません。そのため、ほとんどのフックは「読み取り専用」です。
buildModuleモジュールのビルド開始前にトリガーされます。
SyncHook<[Module]>Module: モジュールインスタンスexecuteModuleコンパイル時の実行モジュールが存在する場合、それらが実行されるときにこのフックが呼び出されます。
SyncHook<[ExecuteModuleArgument, ExecuteModuleContext]>ExecuteModuleArgument: コンパイル時実行モジュールの引数ExecuteModuleContext: コンパイル時実行モジュールのコンテキストsucceedModuleモジュールが正常にビルドされたときに実行されます。
SyncHook<[Module]>Module: モジュールインスタンスfinishModulesすべてのモジュールがエラーなしでビルドされたときに呼び出されます。
AsyncSeriesHook<[Module[]]>Module[]: モジュールインスタンスのリストsealコンパイルが新しいモジュールの受け入れを停止し、モジュールの最適化を開始するときに呼び出されます。
SyncHook<[]>optimizeModulesモジュール最適化フェーズの開始時に呼び出されます。
SyncBailHook<[Module[]]>Module[]: モジュールインスタンスのリストafterOptimizeModulesモジュール最適化が完了した後に呼び出されます。
SyncBailHook<[Module[]]>Module[]: モジュールインスタンスのリストoptimizeTree依存関係ツリーの最適化前に呼び出されます。
AsyncSeriesHook<[Chunk[], Module[]]>Chunk[]: チャンクインスタンスのリストModule[]: モジュールインスタンスのリストoptimizeChunkModulesツリー最適化の後、チャンクモジュール最適化の開始時に呼び出されます。
AsyncSeriesBailHook<[Chunk[], Module[]]>Chunk[]: チャンクインスタンスのリストModule[]: モジュールインスタンスのリストadditionalTreeRuntimeRequirementsツリーランタイム要件の収集後に呼び出されます。
SyncHook<[Chunk, Set<RuntimeGlobals>]>Chunk: チャンクインスタンスSet<RuntimeGlobals>: ランタイム要件ここで、ランタイム要件セットを変更することで、追加のビルトインランタイムモジュールを追加できます。
runtimeRequirementInTreeコンパイルにランタイムモジュールを追加する際に呼び出されます。
HookMap<SyncBailHook<[Chunk, Set<RuntimeGlobals>]>>Chunk: チャンクインスタンスSet<RuntimeGlobals>: ランタイム要件ランタイム要件セットの変更またはcompilation.addRuntimeModule の呼び出しによるカスタムランタイムモジュールの追加によって、ここで追加のビルトインランタイムモジュールを追加できます。
runtimeModuleランタイムモジュールがコンパイルに追加された後に呼び出されます。
SyncHook<[RuntimeModule, Chunk]>RuntimeModule: ランタイムモジュールインスタンスChunk: チャンクインスタンスこのランタイムモジュールの生成コードは、そのsourceプロパティを通じて変更できます。
processAssets出力前にアセットを処理します。
AsyncSeriesHook<Assets>name: string — プラグインの名前stage: Stage — タップインするステージ(以下のアセット処理ステージを参照)Assets: Record<string, Source>: プレーンオブジェクト。キーはアセットのパス名、値はSourceで表されるアセットのデータです。PROCESS_ASSETS_STAGE_ADDITIONAL ステージで新しいアセットを出力しますサポートされているステージのリストを以下に示します。Rspackはこれらのステージを上から下へ順番に実行します。実行する操作に基づいて適切なステージを選択してください。
PROCESS_ASSETS_STAGE_ADDITIONAL — コンパイルに追加のアセットを追加します。PROCESS_ASSETS_STAGE_PRE_PROCESS — アセットの基本的な前処理。PROCESS_ASSETS_STAGE_DERIVED — 既存のアセットから新しいアセットを派生させます。PROCESS_ASSETS_STAGE_ADDITIONS — 既存のアセットに追加セクションを追加します(例:バナーまたは初期化コード)。PROCESS_ASSETS_STAGE_OPTIMIZE — 一般的な方法で既存のアセットを最適化します。PROCESS_ASSETS_STAGE_OPTIMIZE_COUNT — 既存のアセットの数を最適化します(例:マージすることによって)。PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY — 既存のアセットの互換性を最適化します(例:ポリフィルまたはベンダープレフィックスを追加することによって)。PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE — 既存のアセットのサイズを最適化します(例:空白を最小化または省略することによって)。PROCESS_ASSETS_STAGE_DEV_TOOLING — アセットに開発ツールを追加します(例:ソースマップを抽出することによって)。PROCESS_ASSETS_STAGE_OPTIMIZE_INLINE — 既存のアセットを他のアセットにインライン化することによって、既存のアセットの数を最適化します。PROCESS_ASSETS_STAGE_SUMMARIZE — 既存のアセットのリストを要約します。PROCESS_ASSETS_STAGE_OPTIMIZE_HASH — アセットのハッシュを最適化する(例:アセットコンテンツの実際のハッシュを生成する)。PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER — 既存のアセットの転送を最適化する(例:圧縮 (gzip) ファイルを別のアセットとして準備する)。PROCESS_ASSETS_STAGE_ANALYSE — 既存のアセットを分析する。PROCESS_ASSETS_STAGE_REPORT — レポート作成のための資産を作成する。afterProcessAssetsprocessAssetsフックがエラーなしで終了した後に呼び出される。
SyncHook<Assets>Assets: Record<string, Source>: アセットインスタンスのリストafterSealシールフェーズ後に呼び出される。
AsyncSeriesHook<[]>chunkHash各チャンクのハッシュを発行するためにトリガーされる。
SyncHook<[Chunk, Hash]>Chunk: チャンクインスタンスHash: チャンクハッシュインスタンスchunkAssetチャンクのアセットがコンパイルに追加されたときにトリガーされる。
SyncHook<[Chunk, string]>Chunk: チャンクインスタンスstring: アセットファイル名childCompiler子コンパイラの設定後に実行される。
SyncHook<[Compiler, string, number]>Compiler: 子コンパイラインスタンスstring: 子コンパイラ名number: 子コンパイラインデックスstatsPresetこのフックは、プリセットが使用されたときにトリガーされるアクションのリストのようなものです。オプションオブジェクトを受け取ります。プラグインがプリセットを管理する場合、既存のものを置き換えることなく、このオブジェクトの設定を注意深く変更する必要があります。
SyncHook<[Partial<StatsOptions>, CreateStatsOptionsContext]>Partial<StatsOptions>: stats オプションCreateStatsOptionsContext: stats コンテキストこれはプラグインの例です。
このプラグインは、プリセット"my-preset"で、allオプションが未定義の場合、デフォルトでtrueになるようにします。
statsNormalizeこのフックは、オプションオブジェクトを一貫性のあるフォーマットに変換するために使用されます。これにより、後続のフックで簡単に使用できます。また、欠落しているオプションをデフォルト値に設定します。
SyncHook<[Partial<StatsOptions>, CreateStatsOptionsContext]>Partial<StatsOptions>: stats オプションCreateStatsOptionsContext: stats コンテキストこれはプラグインの例です。
このプラグインでは、myOptionが欠落している場合、[]に設定されます。さらに、元々は単一の値として定義されていた場合でも、myOptionが常に配列であることを保証します。
statsFactoryこのフックは、特定のオプションに対してStatsFactoryクラスにアクセスできます。
SyncHook<[StatsFactory, StatsOptions]>StatsFactory: stats ファクトリーインスタンス、詳細はStats Factory Hooksを参照してください。StatsOptions: stats オプションstatsPrinterこのフックは、特定のオプションに対してStatsPrinterクラスにアクセスできます。
SyncHook<[StatsPrinter, StatsOptions]>StatsPrinter: stats プリンターインスタンス、詳細はStats Printer Hooksを参照してください。StatsOptions: stats オプション