compilation 钩子

    Compilation 类扩展(extend)自 Tapable,并提供了以下生命周期钩子。可以按照 compiler 钩子的相同方式,调用 tap:

    compiler 用法相同,取决于不同的钩子类型,也可以在某些钩子上访问 tapAsynctapPromise

    SyncHook

    在模块构建开始之前触发。

    参数:module

    rebuildModule

    SyncHook

    在重新构建一个模块之前触发。

    参数:module

    failedModule

    SyncHook

    模块构建失败时执行。

    参数:module error

    succeedModule

    SyncHook

    模块构建成功时执行。

    参数:module

    finishModules

    SyncHook

    所有模块都完成构建。

    参数:modules

    finishRebuildingModule

    SyncHook

    一个模块完成重新构建。

    参数:module

    seal

    SyncHook

    编译(compilation)停止接收新模块时触发。

    unseal

    SyncHook

    编译(compilation)开始接收新模块时触发。

    SyncBailHook

    参数:modules

    optimizeDependencies

    SyncBailHook

    依赖优化开始时触发。

    参数:modules

    optimizeDependenciesAdvanced

    SyncBailHook

    参数:modules

    afterOptimizeDependencies

    SyncHook

    参数:modules

    optimize

    SyncHook

    优化阶段开始时触发。

    optimizeModulesBasic

    SyncBailHook

    参数:modules

    optimizeModules

    SyncBailHook

    参数:modules

    optimizeModulesAdvanced

    SyncBailHook

    参数:modules

    afterOptimizeModules

    SyncHook

    参数:modules

    optimizeChunksBasic

    SyncBailHook

    参数:chunks

    optimizeChunks

    SyncBailHook

    优化 chunk。

    参数:chunks

    optimizeChunksAdvanced

    SyncBailHook

    参数:chunks

    afterOptimizeChunks

    SyncHook

    chunk 优化完成之后触发。

    参数:chunks

    optimizeTree

    异步优化依赖树。

    参数:chunks modules

    SyncHook

    参数:chunks modules

    optimizeChunkModulesBasic

    SyncBailHook

    参数:chunks modules

    optimizeChunkModules

    SyncBailHook

    参数:chunks modules

    optimizeChunkModulesAdvanced

    SyncBailHook

    参数:chunks modules

    afterOptimizeChunkModules

    SyncHook

    参数:chunks modules

    shouldRecord

    SyncBailHook

    reviveModules

    SyncHook

    从 records 中恢复模块信息。

    参数:modules records

    optimizeModuleOrder

    SyncHook

    将模块从最重要的到最不重要的进行排序。

    参数:modules

    advancedOptimizeModuleOrder

    SyncHook

    参数:modules

    beforeModuleIds

    SyncHook

    参数:modules

    moduleIds

    SyncHook

    参数:modules

    optimizeModuleIds

    SyncHook

    参数:chunks

    afterOptimizeModuleIds

    SyncHook

    参数:chunks

    reviveChunks

    SyncHook

    从 records 中恢复 chunk 信息。

    参数:modules records

    optimizeChunkOrder

    SyncHook

    将 chunk 从最重要的到最不重要的进行排序。

    参数:chunks

    beforeOptimizeChunkIds

    SyncHook

    chunk id 优化之前触发。

    参数:chunks

    SyncHook

    优化每个 chunk 的 id

    参数:chunks

    afterOptimizeChunkIds

    SyncHook

    chunk id 优化完成之后触发。

    参数:chunks

    recordModules

    SyncHook

    将模块信息存储到 records。

    参数:modules records

    recordChunks

    SyncHook

    将 chunk 信息存储到 records。

    参数:chunks records

    beforeHash

    SyncHook

    afterHash

    SyncHook

    在编译被哈希(hashed)之后。

    SyncHook

    参数:records

    record

    SyncHook

    compilation 相关信息存储到 records 中。

    参数:compilation records

    beforeModuleAssets

    SyncHook

    shouldGenerateChunkAssets

    SyncBailHook

    beforeChunkAssets

    SyncHook

    在创建 chunk 资源(asset)之前。

    additionalChunkAssets

    SyncHook

    为 chunk 创建附加资源(asset)

    参数:chunks

    records

    SyncHook

    参数:compilation records

    additionalAssets

    AsyncSeriesHook

    为编译(compilation)创建附加资源(asset)。这个钩子可以用来下载图像,例如:

    optimizeChunkAssets

    AsyncSeriesHook

    优化所有 chunk 资源(asset)。资源(asset)会被存储在 compilation.assets。每个 Chunk 都有一个 files 属性,指向这个 chunk 创建的所有文件。附加资源(asset)被存储在 compilation.additionalChunkAssets 中。

    参数:chunks

    以下是为每个 chunk 添加 banner 的简单示例。

    afterOptimizeChunkAssets

    SyncHook

    chunk 资源(asset)已经被优化。

    参数:chunks

    这里是一个来自 的示例插件,详细地输出每个 chunk 里有什么。

    optimizeAssets

    AsyncSeriesHook

    优化存储在 compilation.assets 中的所有资源(asset)。

    参数:assets

    afterOptimizeAssets

    SyncHook

    资源优化已经结束。

    参数:assets

    needAdditionalSeal

    SyncBailHook

    afterSeal

    AsyncSeriesHook

    chunkHash

    SyncHook

    参数:chunk chunkHash

    moduleAsset

    SyncHook

    一个模块中的一个资源被添加到编译中。

    参数:module filename

    chunkAsset

    SyncHook

    一个 chunk 中的一个资源被添加到编译中。

    参数:chunk filename

    assetPath

    SyncWaterfallHook

    参数:filename data

    needAdditionalPass

    SyncBailHook

    childCompiler

    SyncHook

    参数:childCompiler compilerName compilerIndex

    normalModuleLoader

    SyncHook

    普通模块 loader,真正(一个接一个地)加载模块图(graph)中所有模块的函数。

    参数:loaderContext module

    dependencyReference

    SyncWaterfallHook

    Compilation.hooks.dependencyReference(depRef, dependency, module) allows to change the references reported by dependencies.


    byzyk