NormalModuleFactory 钩子

NormalModuleFactory 模块由 Compiler 用于生成模块。从入口点开始,它解析每个请求,解析内容以查找更多请求,并通过解析所有新文件并解析任何新文件来继续遍历文件。在最后阶段,每个依赖项都成为一个 Module 实例。

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 来忽略依赖项。返回 Module 实例将完成该过程。否则,应返回 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