Обработка хуков 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.
- Параметры обратного вызова:
createDataresolveData
createModuleClass
HookMap<SyncBailHook>
Хук, позволяющий переопределить класс NormalModule при создании модулей. Этот хук вызывается после хука createModule и перед хуком module.
-
Параметры хука:
identifier -
Параметры обратного вызова:
createDataresolveData
module
SyncWaterfallHook
Вызывается после создания экземпляра NormalModule.
- Параметры обратного вызова:
modulecreateDataresolveData
createParser
HookMap<SyncBailHook>
Вызывается перед созданием экземпляра Parser . parserOptions — опции в module.parser для соответствующего идентификатора или пустой объект.
-
Параметры хука:
identifier -
Параметры обратного вызова:
parserOptions
parser
HookMap<SyncHook>
Вызывается после создания экземпляра Parser.
-
Параметры хука:
identifier -
Параметры обратного вызова:
parserparserOptions
Возможные значения по умолчанию для идентификаторов:
javascript/autojavascript/dynamicjavascript/esmjsonwebassembly/syncwebassembly/asyncasset
createGenerator
HookMap<SyncBailHook>
Вызывается перед созданием экземпляра Generator . generatorOptions — опции в module.parser для соответствующего идентификатора или пустой объект.
-
Параметры хука:
identifier -
Параметры обратного вызова:
generatorOptions
generator
HookMap<SyncHook>
Вызывается после создания экземпляра Generator.
-
Параметры хука:
identifier -
Параметры обратного вызова:
generatorgeneratorOptions
Возможные значения по умолчанию для идентификаторов:
jsonwebassembly/syncwebassembly/asyncassetasset/sourceasset/resourceasset/inline
© JS Foundation and other contributors
Licensed under the Creative Commons Attribution License 4.0.
https://webpack.js.org/api/normalmodulefactory-hooks