NormalModuleFactory Hooks

NormalModuleFactory 模組由 Compiler 用於產生模組。從進入點開始,它會解析每個要求,解析內容以找出進一步的要求,並透過解析所有內容和解析任何新檔案,持續爬取檔案。在最後階段,每個依賴項都變成一個模組實例。

NormalModuleFactory 類別延伸 Tapable,並提供下列生命週期掛勾。它們可以像編譯器掛勾一樣被觸發

NormalModuleFactory.hooks.someHook.tap(/* ... */);

NormaleModuleFactory 會建立 ParserGenerator 實例,它們可以透過 HookMaps 存取。必須傳遞識別碼才能觸發這些實例

NormalModuleFactory.hooks.someHook.for('identifier').tap(/* ... */);

compiler 一樣,tapAsynctapPromise 也可能可用,具體取決於掛勾的類型。

beforeResolve

AsyncSeriesBailHook

遇到新的依賴請求時呼叫。可以透過傳回 false 來忽略依賴關係。否則,應傳回 undefined 以繼續。

  • 呼叫回傳參數:resolveData

factorize

AsyncSeriesBailHook

在啟動解析前呼叫。應傳回 undefined 以繼續。

  • 呼叫回傳參數:resolveData

resolve

AsyncSeriesBailHook

在請求解析前呼叫。可以透過傳回 false 來忽略依賴關係。傳回模組實例將完成處理程序。否則,應傳回 undefined 以繼續。

  • 呼叫回傳參數:resolveData

resolveForScheme

AsyncSeriesBailHook

在解析具有架構 (URI) 的請求前呼叫。

  • 呼叫回傳參數:resolveData

afterResolve

AsyncSeriesBailHook

在請求解析後呼叫。

  • 呼叫回傳參數:resolveData

createModule

AsyncSeriesBailHook

在建立 NormalModule 實例前呼叫。

  • 呼叫回傳參數:createData resolveData

createModuleClass

HookMap<SyncBailHook>

5.81.0+

在建立模組時,允許您覆寫 NormalModule 類別的鉤子。此鉤子在 createModule 鉤子之後和 module 鉤子之前呼叫。

  • 鉤子參數:identifier

  • 呼叫回傳參數:createData resolveData

module

SyncWaterfallHook

在建立 NormalModule 實例後呼叫。

  • 回呼參數:module createData resolveData

createParser

HookMap<SyncBailHook>

在建立 Parser 實例之前呼叫。parserOptionsmodule.parser 中對應識別碼的選項或空物件。

  • 鉤子參數:identifier

  • 回呼參數:parserOptions

parser

HookMap<SyncHook>

在建立 Parser 實例後觸發。

  • 鉤子參數:identifier

  • 回呼參數:parser parserOptions

可能的預設識別碼

  1. javascript/auto
  2. javascript/dynamic
  3. javascript/esm
  4. JSON
  5. webassembly/sync
  6. webassembly/async
  7. asset

createGenerator

HookMap<SyncBailHook>

在建立 Generator 實例之前呼叫。generatorOptionsmodule.parser 中對應識別碼的選項或空物件。

  • 鉤子參數:identifier

  • 回呼參數:generatorOptions

generator

HookMap<SyncHook>

在建立 Generator 實例後呼叫。

  • 鉤子參數:identifier

  • 回呼參數:generator generatorOptions

可能的預設識別碼

  1. JSON
  2. webassembly/sync
  3. webassembly/async
  4. asset
  5. asset/source
  6. asset/resource
  7. asset/inline

2 貢獻者

iguessitsokaychenxsan