NormalModuleFactory Hooks
NormalModuleFactory 모듈은 컴파일러에서 모듈을 생성하는데 사용됩니다. 엔트리 포인트에서 시작하여 각 요청을 해결하고, 내용을 파싱하여 추가 요청을 찾고, 모든 파일을 해결함으로써 크롤링하고 새 파일을 파싱합니다. 마지막 단계에서는 각 의존성이 모듈 인스턴스가 됩니다.
NormalModuleFactory 클래스는 tapable 훅의 hooks 객체를 노출하며 다음과 같은 생명주기 훅을 제공합니다. 컴파일러 훅도 같은 방식으로 탭 할 수 있습니다.
const nmf = NormalModuleFactory.hooks;
nmf.someHook.tap("MyPlugin", (resolveData) => {
// ...
});NormalModuleFactory는 HookMaps에서 접근할 수 있는 Parser 및 Generator 인스턴스를 생성합니다. 이러한 인스턴스를 사용하려면 식별자를 전달해야 합니다.
NormalModuleFactory.hooks.parser
.for("javascript/esm")
.tap("MyPlugin", (parser, parserOptions) => {
// ...
});컴파일러와 마찬가지로 tapAsync 및 tapPromise도 훅의 유형에 따라 사용할 수 있습니다.
beforeResolve
AsyncSeriesBailHook
새 의존성 요청이 발견되면 호출됩니다. 의존성은 false를 반환하여 무시할 수 있습니다. 그렇지 않으면 계속 진행하기 위해서는 undefined 상태로 반환되어야 합니다.
- 콜백 파라미터:
resolveData
factorize
AsyncSeriesBailHook
해결을 시작하기 전에 호출됩니다. 계속 진행하기 위해서는 undefined 상태로 반환되어야 합니다.
- 콜백 파라미터:
resolveData
resolve
AsyncSeriesBailHook
요청이 해결되기 전에 호출됩니다. false를 반환하여 의존성을 무시할 수 있습니다. 모듈 인스턴스를 반환하면 프로세스가 완료됩니다. 그렇지 않으면 계속 진행하기 위해서는 undefined 상태로 반환되어야 합니다.
- 콜백 파라미터:
resolveData
resolveForScheme
HookMap<AsyncSeriesBailHook>
스킴(URI)과 요청이 해결되기 전에 .
-
훅 파라미터:
scheme -
콜백 파라미터:
resourceDataresolveData
resolveInScheme
HookMap<AsyncSeriesBailHook>
스킴이 있는 리소스 내부에서 만들어진 요청을 해석하기 위해 호출됩니다. 요청 자체에 스킴이 없는 경우, 즉 resolveForScheme의 상대적인 경우입니다. 맵은 가져오는 리소스의 스킴으로 키가 지정됩니다. true를 반환하면 요청이 해석된 것으로 보고하며, 그 외의 경우 webpack이 일반 해석으로 폴백합니다.
-
훅 파라미터:
scheme -
콜백 파라미터:
resourceDataresolveData
afterResolve
AsyncSeriesBailHook
요청이 해결되면 호출됩니다.
- 콜백 파라미터:
resolveData
createModule
AsyncSeriesBailHook
NormalModule 인스턴스를 만들기 전에 호출됩니다.
- 콜백 파라미터:
createDataresolveData
createModuleClass
HookMap<SyncBailHook>
모듈을 생성할 때 NormalModule 클래스를 재정의할 수 있는 훅입니다. 이 훅은 createModule 훅 이후와 module 훅 이전에 호출됩니다.
-
훅 파라미터:
identifier -
콜백 파라미터:
createDataresolveData
module
SyncWaterfallHook
NormalModule 인스턴스를 만들기 전에 호출됩니다.
- 콜백 파라미터:
modulecreateDataresolveData
prepareModuleType
HookMap<AsyncSeriesHook>
webpack이 해당 타입의 파서나 제너레이터를 필요로 하기 전에 모듈 타입에 대해 한 번 호출됩니다. 이를 통해 플러그인은 동기적인 createParser 또는 createGenerator 탭에서 사용할 것을 비동기적으로 로드할 수 있습니다. 탭이 없는 타입이나 이미 준비된 타입은 기다리지 않고 계속됩니다.
- 훅 파라미터:
type
createParser
HookMap<SyncBailHook>
파서 인스턴스를 만들기 전에 호출됩니다. parserOptions는 해당 식별자 또는 빈 개체에 대한 module.parser의 옵션입니다.
-
훅 파라미터:
identifier -
콜백 파라미터:
parserOptions
parser
HookMap<SyncHook>
파서 인스턴스를 만든 후 발생합니다.
-
훅 파라미터:
identifier -
콜백 파라미터:
parserparserOptions
가능한 기본 식별자:
javascript/autojavascript/dynamicjavascript/esmjsonwebassembly/syncwebassembly/asyncasset
createGenerator
HookMap<SyncBailHook>
제너레이터 인스턴스를 만들기 전에 호출됩니다. generatorOptions는 해당 식별자 또는 빈 개체에 대한 module.parser의 옵션입니다.
-
훅 파라미터:
identifier -
콜백 파라미터:
generatorOptions
generator
HookMap<SyncHook>
제너레이터 인스턴스를 만든 후 호출됩니다.
-
훅 파라미터:
identifier -
콜백 파라미터:
generatorgeneratorOptions
가능한 기본 식별자:
jsonwebassembly/syncwebassembly/asyncassetasset/sourceasset/resourceasset/inlineasset/bytes