
- 0133技术站
- 联系QQ:18840023
- QQ交流群
- 微信公众号

Compiler 模块是 webpack 的支柱引擎,它通过 CLI 或 Node API 传递的所有选项,创建出一个 compilation 实例。它扩展(extend)自 Tapable 类,以便注册和调用插件。大多数面向用户的插件首,会先在 Compiler 上注册。
T> 此模块会暴露在 webpack.Compiler,可以直接通过这种方式使用。关于更多信息,请查看这个示例。
Compiler 支持可以监控文件系统的监听(watching)机制,并且在文件修改时重新编译。当处于监听模式(watch mode)时,compiler 会触发诸如 watchRun, watchClose 和 invalid 等额外的事件。通常用于开发环境中使用,也常常会在 webpack-dev-server 这些工具的底层之下调用,由此开发人员无须每次都使用手动方式重新编译。还可以通过 CLI 进入监听模式。
以下生命周期钩子函数,是由 compiler 暴露,可以通过如下方式访问:
compiler.hooks.someHook.tap(...)
取决于不同的钩子类型,也可以在某些钩子上访问 tapAsync 和 tapPromise。
entryOptionSyncBailHook
在 entry 配置项处理过之后,执行插件。
afterPluginsSyncHook
设置完初始插件之后,执行插件。
参数:compiler
afterResolversSyncHook
resolver 安装完成之后,执行插件。
参数:compiler
environmentSyncHook
environment 准备好之后,执行插件。
afterEnvironmentSyncHook
environment 安装完成之后,执行插件。
beforeRunAsyncSeriesHook
compiler.run() 执行之前,添加一个钩子。
参数:compiler
runAsyncSeriesHook
开始读取 records 之前,钩入(hook into) compiler。
参数:compiler
watchRunAsyncSeriesHook
监听模式下,一个新的编译(compilation)触发之后,执行一个插件,但是是在实际编译开始之前。
参数:compiler
normalModuleFactorySyncHook
NormalModuleFactory 创建之后,执行插件。
参数:normalModuleFactory
contextModuleFactoryContextModuleFactory 创建之后,执行插件。
参数:contextModuleFactory
beforeCompileAsyncSeriesHook
编译(compilation)参数创建之后,执行插件。
参数:compilationParams
compileSyncHook
一个新的编译(compilation)创建之后,钩入(hook into) compiler。
参数:compilationParams
thisCompilationSyncHook
触发 compilation 事件之前执行(查看下面的 compilation)。
参数:compilation
compilationSyncHook
编译(compilation)创建之后,执行插件。
参数:compilation
makeAsyncParallelHook
...
参数:compilation
afterCompileAsyncSeriesHook
...
参数:compilation
shouldEmitSyncBailHook
此时返回 true/false。
参数:compilation
needAdditionalPassSyncBailHook
...
emitAsyncSeriesHook
生成资源到 output 目录之前。
参数:compilation
afterEmitAsyncSeriesHook
生成资源到 output 目录之后。
参数:compilation
doneSyncHook
编译(compilation)完成。
参数:stats
failedSyncHook
编译(compilation)失败。
参数:error
invalidSyncHook
监听模式下,编译无效时。
参数:fileName, changeTime
watchCloseSyncHook
监听模式停止。
推荐手册