Stats 对象会作为 rspack() 回调函数的第二个参数,可以通过它获取到一次 Compilation 执行过程中的信息,包括:
Stats 对象提供了两个重要方法:
toJson(): 以 Stats JSON 对象的形式输出信息,常用于产物分析工具toString(): 以字符串形式输出信息,常用于控制台输出同时 Rspack 也提供了 StatsFactory 和 StatsPrinter 来更细粒度地控制输出的对象或字符串。
通过 compilation.getStats() 或 new Stats(compilation) 以创建一个 Compilation 关联的 Stats 对象。
用来检查编译期是否有错误。
用来检查编译期是否有警告。
以 Stats JSON 对象形式返回编译信息。Stats 配置 可以是一个字符串(预设值)或是颗粒化控制的对象:
以格式化的字符串形式返回描述编译信息(类似 CLI 的输出)。
配置对象与 stats.toJson(options) 一致,除了额外增加的一个选项:
下面是 stats.toString() 用法的示例:
类型: Compilation
获取关联的 Compilation 对象。
类型: string
获取此次构建的哈希值,等同于 Compilation.hash。
当使用 MultiCompiler 同时执行多个编译任务后,它们的编译结果将被包装为一个 MultiStats 对象,它提供与 Stats 类似的方法和属性。
类型: string
获取所有编译的哈希合并后的唯一哈希。
用来检查编译期是否有错误,只有所有编译都没有错误,才会返回 false。
用来检查编译期是否有警告,只有所有编译都没有警告,才会返回 false。
根据 Stats 配置 获取所有编译的 Stats JSON 对象,包裹在 children 字段中,并汇总 errors 和 warnings。
根据 Stats 配置 拼接所有编译的 Stats 输出字符串。
用于从 Compilation 生成 Stats JSON 对象,并且提供了钩子以在生成过程中进行细粒度的控制。
可通过 compilation.hooks.statsFactory 获取。或者通过 new StatsFactory() 创建新实例。
StatsFactory 的核心方法,根据 type 指定当前数据结构,查找并运行对应的生成器以生成 Stats 项目。
StatsFactory对象仅负责处理调用钩子,对应类型的处理代码的处理代码可在DefaultStatsFactoryPlugin中找到。
用于从 Stats JSON 对象生成输出字符串,并且提供了钩子以在生成过程中进行细粒度的控制。
可通过 compilation.hooks.statsPrinter 获取。或者通过 new StatsPrinter() 创建新实例。
StatsPrinter 的核心方法,根据 type 指定当前数据结构,查找并运行对应的生成器以生成 Stats 项目的输出字符串。
StatsPrinter对象仅负责处理调用钩子,对应类型的处理代码的处理代码可在DefaultStatsPrinterPlugin中找到。