NormalModuleFactory
は、コンパイラによってモジュール(NormalModule
)を生成するために使用されます。各エントリモジュール(entry
)から開始し、モジュールの依存関係要求を解決して、依存関係の最終的なパスを取得します。これらの最終的なパスに基づいて、NormalModule
インスタンスを作成します。その後、新しく作成されたモジュールの依存関係要求をさらに解決します。このプロセスは再帰的であり、NormalModuleFactory
を通じて各モジュールをNormalModule
として作成します。
NormalModuleFactory
は、以下のライフサイクルフックを提供します。これらはCompiler
フックと同様に使用できます。
すべてのフックはTapable
を継承します。tap()
に加えて、フックの種類に応じてtapAsync()
とtapPromise()
も使用できます。
beforeResolve
AsyncSeriesBailHook<[ResolveData]>
新しい依存関係要求が検出されたときに呼び出されます。false
を返すことで、依存関係を無視できます。それ以外の場合は、続行するためにundefined
を返す必要があります。
beforeResolve
フックは、モジュール解決プロセスのまさに最初に呼び出され、解決が行われる前にモジュールの要求情報をインターセプトして変更することができます。このフックを使用して、特定のモジュールの解決を前処理、フィルタリング、またはブロックできます。
factorize
AsyncSeriesBailHook<[ResolveData]>
解決を開始する前に呼び出されます。続行するにはundefined
を返す必要があります。
factorize
フックは、モジュールがインスタンス化される前にカスタムロジックを追加し、モジュール作成プロセスを変更するために使用されます。
現時点では、モジュールインスタンスの返却はサポートされていません。このフックはモジュール作成プロセスに影響を与えるため、注意して使用してください。
resolve
AsyncSeriesBailHook<[ResolveData]>
要求が解決される前に呼び出され、続行するにはundefined
を返す必要があります。resolve
フックは、モジュール解決が開始される前にモジュール要求情報をインターセプトして変更するために使用できます。このフックにより、モジュール要求の前処理が可能です。
現時点では、モジュールインスタンスまたはfalse
の返却はサポートされていません。
afterResolve
AsyncSeriesBailHook<[ResolveData]>
要求が解決された後に呼び出されます。
afterResolve
フックは、モジュールが解決された後に結果をさらに処理または変更するために使用されます。これはモジュール解決プロセスの最後に呼び出されるため、この段階ではモジュールのパス、要求情報などは既に決定されています。
resolveForScheme
AsyncSeriesBailHook<[ResourceDataWithData]>
スキーマ(URI)付きの要求が解決される前に呼び出されます。
resolveForScheme
は、通常、file://
、https://
などの特定のプロトコルを持つモジュール要求を処理するために使用されます。