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
— レポート作成のための資産を作成する。afterProcessAssets
processAssetsフックがエラーなしで終了した後に呼び出される。
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 オプション