Spec-Zone.ru › webpack 5

Обработка хуков NormalModuleFactory

Модуль NormalModuleFactory используется Compiler для генерации модулей. Начиная с точек входа, он разрешает каждый запрос, анализирует содержимое для поиска дополнительных запросов и продолжает обход файлов, разрешая все и анализируя новые файлы. На последнем этапе каждая зависимость превращается в экземпляр Module.

Класс NormalModuleFactory расширяет Tapable и предоставляет следующие хуки жизненного цикла. Их можно использовать так же, как и хуки компилятора:

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

NormaleModuleFactory создаёт экземпляры Parser и Generator, которые можно получить через HookMaps. Для использования этих хуков необходимо передать идентификатор:

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

Как и в случае с compiler, tapAsync и tapPromise могут быть доступны в зависимости от типа хука.

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 . parserOptions — опции в module.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 . generatorOptions — опции в module.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

© JS Foundation and other contributors
Licensed under the Creative Commons Attribution License 4.0.
https://webpack.js.org/api/normalmodulefactory-hooks

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API