NormalModuleFactory
模組由 Compiler
用於產生模組。從進入點開始,它會解析每個要求,解析內容以找出進一步的要求,並透過解析所有內容和解析任何新檔案,持續爬取檔案。在最後階段,每個依賴項都變成一個模組實例。
NormalModuleFactory
類別延伸 Tapable
,並提供下列生命週期掛勾。它們可以像編譯器掛勾一樣被觸發
NormalModuleFactory.hooks.someHook.tap(/* ... */);
NormaleModuleFactory 會建立 Parser
和 Generator
實例,它們可以透過 HookMaps 存取。必須傳遞識別碼才能觸發這些實例
NormalModuleFactory.hooks.someHook.for('identifier').tap(/* ... */);
與 compiler
一樣,tapAsync
和 tapPromise
也可能可用,具體取決於掛勾的類型。
AsyncSeriesBailHook
遇到新的依賴請求時呼叫。可以透過傳回 false
來忽略依賴關係。否則,應傳回 undefined
以繼續。
resolveData
AsyncSeriesBailHook
在啟動解析前呼叫。應傳回 undefined
以繼續。
resolveData
AsyncSeriesBailHook
在請求解析前呼叫。可以透過傳回 false
來忽略依賴關係。傳回模組實例將完成處理程序。否則,應傳回 undefined
以繼續。
resolveData
AsyncSeriesBailHook
在解析具有架構 (URI) 的請求前呼叫。
resolveData
AsyncSeriesBailHook
在請求解析後呼叫。
resolveData
AsyncSeriesBailHook
在建立 NormalModule
實例前呼叫。
createData
resolveData
HookMap<SyncBailHook>
在建立模組時,允許您覆寫 NormalModule
類別的鉤子。此鉤子在 createModule
鉤子之後和 module
鉤子之前呼叫。
鉤子參數:identifier
呼叫回傳參數:createData
resolveData
SyncWaterfallHook
在建立 NormalModule
實例後呼叫。
module
createData
resolveData
HookMap<SyncBailHook>
在建立 Parser
實例之前呼叫。parserOptions
是 module.parser 中對應識別碼的選項或空物件。
鉤子參數:identifier
回呼參數:parserOptions
HookMap<SyncHook>
在建立 Parser
實例後觸發。
鉤子參數:identifier
回呼參數:parser
parserOptions
可能的預設識別碼
javascript/auto
javascript/dynamic
javascript/esm
JSON
webassembly/sync
webassembly/async
asset
HookMap<SyncBailHook>
在建立 Generator
實例之前呼叫。generatorOptions
是 module.parser 中對應識別碼的選項或空物件。
鉤子參數:identifier
回呼參數:generatorOptions
HookMap<SyncHook>
在建立 Generator
實例後呼叫。
鉤子參數:identifier
回呼參數:generator
generatorOptions
可能的預設識別碼
JSON
webassembly/sync
webassembly/async
asset
asset/source
asset/resource
asset/inline