The NormalModuleFactory module is used by the Compiler to generate modules. Starting with entry points, it resolves each request, parses the content to find further requests, and keeps crawling through files by resolving all and parsing any new files. At last stage, each dependency becomes a Module instance.
The NormalModuleFactory class extends Tapable and provides the following
lifecycle hooks. They can be tapped the same way as compiler hooks:
NormalModuleFactory.hooks.someHook.tap(/* ... */);NormaleModuleFactory creates Parser and Generator instances which can be accessed by HookMaps. Identifier must be passed to tap into these:
NormalModuleFactory.hooks.someHook.for('identifier').tap(/* ... */);As with the compiler, tapAsync and tapPromise may also be available
depending on the type of hook.
AsyncSeriesBailHook
Called when a new dependency request is encountered. A dependency can be ignored by returning false. Otherwise, it should return undefined to proceed.
resolveDataAsyncSeriesBailHook
Called before initiating resolve. It should return undefined to proceed.
resolveDataAsyncSeriesBailHook
Called before the request is resolved. A dependency can be ignored by returning false. Returning a Module instance would finalize the process. Otherwise, it should return undefined to proceed.
resolveDataAsyncSeriesBailHook
Called before a request with scheme (URI) is resolved.
resolveDataAsyncSeriesBailHook
Called after the request is resolved.
resolveDataAsyncSeriesBailHook
Called before a NormalModule instance is created.
createData resolveDataSyncWaterfallHook
Called after a NormalModule instance is created.
module createData resolveDataHookMap<SyncBailHook>
Called before a Parser instance is created. parserOptions is options in module.parser for the corresponding identifier or an empty object.
Hook Parameters: identifier
Callback Parameters: parserOptions
HookMap<SyncHook>
Fired after a Parser instance is created.
Hook Parameters: identifier
Callback Parameters: parser parserOptions
Possible default identifiers:
javascript/autojavascript/dynamicjavascript/esmjsonwebassembly/syncwebassembly/asyncassetHookMap<SyncBailHook>
Called before a Generator instance is created. generatorOptions is options in module.parser for the corresponding identifier or an empty object.
Hook Parameters: identifier
Callback Parameters: generatorOptions
HookMap<SyncHook>
Called after a Generator instance is created.
Hook Parameters: identifier
Callback Parameters: generator generatorOptions
Possible default identifiers:
jsonwebassembly/syncwebassembly/asyncassetasset/sourceasset/resourceasset/inline