CC 4.0 许可证

本节内容来自以下链接的内容,并受 CC BY 4.0 许可证约束。

如果未特别说明,以下内容可以认为是基于原始内容修改和删除的结果。

统计

生成打包信息,可用于分析模块依赖关系并优化编译速度。

输出统计的 JSON 文件
  • 使用 @rspack/clirspack build --json stats.json
  • 使用 Rspack 的 JavaScript API,stats.toJson(options)stats.toString(options)
  • 类型: boolean | string | Object
  • 默认值:{"preset":"errors-warnings","timings":true}

统计预设

预设 描述
'normal' (true) 输出统计选项的默认值
'none' (false) 不输出任何内容
'verbose' 输出所有内容
'errors-only' 仅输出与错误相关的的信息
'errors-warnings' 仅输出与错误和警告相关的信息
'minimal' 仅在出现错误或新的编译时输出
'detailed' 输出所有内容,除了 chunkModuleschunkRootModules
'summary' 仅输出汇总信息

您可以指定要输出的打包信息,以下所有字段都是可选的。

预设选项

stats.all

  • 类型: boolean
  • 默认值:undefined

当未定义选项时,stats 选项的回退值。它优先于本地的 Rspack 默认值。

警告

启用 stats.all 将导致 Rust 和 JavaScript 之间大量的數據传输,这将显著增加统计信息生成的耗时。请谨慎使用。

stats.preset

  • 类型: boolean | string
  • 默认值:undefined

设置 预设,用于要显示的信息类型。它对 扩展统计行为 有用。

资产选项

stats.assets

  • 类型: boolean
  • 默认值:true

是否显示资产信息。有关更多详细信息,请参见 资产对象

stats.assetsSort

  • 类型: string
  • 默认值:"id"

根据给定字段对资产进行排序。所有 排序字段 都可以使用。在值中使用 ! 前缀以根据给定字段反转排序顺序。

stats.assetsSpace

  • 类型: number
  • 默认值:15

应显示多少个资产项(组将被折叠以适应此空间)。

stats.relatedAssets

  • 类型: boolean
  • 默认值:false

是否显示与其他资产相关的资产信息(例如,资产的 SourceMaps)。

stats.excludeAssets

  • 类型: Array<string | RegExp | (name: string) => boolean> | string | RegExp | (name: string) => boolean | false
  • 默认值:false

排除匹配的资产信息。这可以使用字符串、正则表达式或接收资产名称作为参数并返回布尔值的函数来完成。stats.excludeAssets 可以是上述任何一种的数组。

stats.cachedAssets

  • 类型: boolean
  • 默认值:true

是否显示有关缓存资产的信息。将 stats.cachedAssets 设置为 false 将告诉 stats 仅显示已发出的文件(不包括已构建的文件)。

资产分组选项

stats.groupAssetsByChunk

  • 类型: boolean

是否按资产与代码块的关系对资产进行分组。

stats.groupAssetsByEmitStatus

  • 类型: boolean

是否按资产状态(已发出、与发出进行比较或已缓存)对资产进行分组。

stats.groupAssetsByExtension

  • 类型: boolean

是否按资产扩展名对资产进行分组。

stats.groupAssetsByInfo

  • 类型: boolean

是否按资产信息(不可变、开发、热模块替换等)对资产进行分组。

stats.groupAssetsByPath

  • 类型: boolean

是否按资产路径对资产进行分组。

代码块选项

stats.chunks

  • 类型: boolean
  • 默认值:true

是否显示有关代码块的信息,有关更多详细信息,请参见 代码块对象

stats.chunkModules

  • 类型: boolean
  • 默认值:true

是否显示有关构建模块的信息以获取有关代码块的信息。

stats.chunkModulesSpace

  • 类型: number
  • 默认值:10

应显示多少个代码块模块项(组将折叠以适应此空间)。

stats.dependentModules

  • 类型: boolean
  • 默认值:false

是否显示作为代码块其他模块的依赖项的代码块模块。

stats.chunkOrigins

  • 类型: boolean
  • 默认值:true

是否显示有关代码块和代码块合并来源的信息。

stats.chunkRelations

  • 类型: boolean
  • 默认值:false

是否显示代码块父级、子级和同级。

stats.chunksSort

  • 类型: string
  • 默认值:"id"

按给定字段对代码块进行排序。所有 排序字段 都允许使用。在值中使用 ! 前缀以按给定字段反转排序顺序。

stats.ids

  • 类型: boolean
  • 默认值:false

是否显示模块和代码块的 ID。

代码块组选项

stats.chunkGroups

  • 类型: boolean
  • 默认值:true

是否显示有关 namedChunkGroups 的信息,有关更多详细信息,请参见 代码块组对象

stats.chunkGroupAuxiliary

  • 类型: boolean
  • 默认值:true

是否显示代码块组中的辅助资产。

stats.chunkGroupChildren

  • 类型: boolean
  • 默认值:true

是否显示代码块组的子级(例如,预取的、预加载的代码块和资产)。

stats.chunkGroupMaxAssets

  • 类型: number
  • 默认值:5

代码块组中应显示多少个资产。

stats.entrypoints

  • 类型: boolean | 'auto'
  • 默认值:false

是否显示入口点及其对应的捆绑包,有关更多详细信息,请参见 入口点对象

stats.entrypoints 设置为 'auto' 时,Rspack 将自动决定是否在 stats 输出中显示入口点。

模块选项

stats.modules

  • 类型: boolean
  • 默认值:true

是否显示有关构建模块的信息,有关更多详细信息,请参见 模块对象

stats.moduleTrace

  • 类型: boolean
  • 默认值:true

是否显示依赖项和警告/错误的来源。

stats.moduleAssets

  • 类型: boolean
  • 默认值:true

是否添加有关模块内资产的信息。

stats.modulesSpace

  • 类型: number
  • 默认值:15

应显示多少个模块项(组将折叠以适应此空间)。

stats.modulesSort

  • 类型: string
  • 默认值:"id"

按给定字段对模块进行排序。所有 排序字段 都允许使用。在值中使用 ! 前缀以按给定字段反转排序顺序。

stats.reasons

  • 类型: boolean
  • 默认值:true

是否显示有关模块包含原因的信息。

stats.reasonsSpace

  • 类型: number
  • 默认值:1000

原因应显示多少个字符(组将折叠以适应此空间)。

stats.source

  • 类型: boolean
  • 默认值:false

是否显示模块的源代码。

stats.depth

  • 类型: boolean
  • 默认值:false

是否显示每个模块到入口点的距离。

stats.orphanModules

  • 类型: boolean
  • 默认值:false

是否显示孤儿模块。

如果模块未包含在任何代码块中,则该模块为孤儿模块。

stats.runtimeModules

  • 类型: boolean
  • 默认值:true

是否显示有关运行时模块的信息。

运行时模块是 Rspack 的内置模块,用于提供各种运行时功能。

stats.cachedModules

  • 类型: boolean
  • 默认值:true

是否显示有关缓存(未构建)模块的信息。

stats.excludeModules

  • 类型: Array<string | RegExp | (name: string) => boolean> | string | RegExp | (name: string) => boolean | false
  • 默认值:false

排除匹配的模块信息。这可以使用字符串、正则表达式或接收模块名称作为参数并返回布尔值的函数来完成。stats.excludeAssets 可以是上述任何一种的数组。

stats.nestedModules

  • 类型: boolean
  • 默认值:true

是否显示有关嵌套在其他模块中的模块的信息(例如,使用模块串联)。

stats.nestedModulesSpace

  • 类型: number
  • 默认值:10

应显示多少个嵌套模块项(组将折叠以适应此空间)。

模块分组选项

stats.groupModulesByAttributes

  • 类型: boolean

是否按模块属性(错误、警告、资产、可选、孤儿或依赖项)对模块进行分组。

stats.groupModulesByCacheStatus

  • 类型: boolean

是否按模块缓存状态(缓存或构建并可缓存)对模块进行分组。

stats.groupModulesByExtension

  • 类型: boolean

是否按模块扩展名对模块进行分组。

stats.groupModulesByPath

  • 类型: boolean

是否按模块路径对模块进行分组。

stats.groupModulesByType

  • 类型: boolean

是否按模块类型对模块进行分组。

stats.groupReasonsByOrigin

  • 类型: boolean

按原因的来源模块进行分组,以避免大量的原因。

优化选项

stats.providedExports

  • 类型: boolean
  • 默认值:false

是否显示模块的导出。

stats.usedExports

  • 类型: boolean
  • 默认值:false

是否显示使用模块的哪些导出。

stats.optimizationBailout

  • 类型: boolean
  • 默认值:false

是否显示优化对模块跳出的原因。

错误/警告选项

stats.errors

  • 类型: boolean
  • 默认值:true

是否显示错误。

stats.errorsCount

  • 类型: boolean
  • 默认值:true

是否显示错误计数。

stats.errorDetails

  • 类型: boolean
  • 默认值:false

是否显示错误的详细信息。默认值为 'auto',当只有 2 个或更少的错误时,将显示错误详细信息。

stats.errorsSpace

  • 类型: number
  • 默认值:5

应显示多少行错误。

stats.errorStack

  • 类型: boolean
  • 默认值:true

是否显示错误的堆栈跟踪。

stats.warnings

  • 类型: boolean
  • 默认值:true

是否显示警告。

stats.warningsCount

  • 类型: boolean
  • 默认值:true

是否显示警告计数。

stats.warningsSpace

  • 类型: number
  • 默认值:5

应显示多少行警告。

日志记录选项

stats.logging

  • 类型: 'info' | 'none' | 'error' | 'warn' | 'log' | 'verbose' | boolean

是否添加日志输出

  • 'none', false: 禁用日志记录
  • 'error': 仅错误
  • 'warn': 仅错误和警告
  • 'info': 错误、警告和信息消息
  • 'log', true: 错误、警告、信息消息、日志消息、组、清除。折叠的组以折叠状态显示。
  • 'verbose': 记录除调试和跟踪之外的所有内容。折叠的组以展开状态显示。

stats.loggingDebug

  • 类型: Array<string | RegExp | function (name) => boolean>

是否显示指定 日志记录器(如插件或加载器)的调试信息。当 stats.logging 设置为 false 时,stats.loggingDebug 选项将被忽略。

rspack.config.js
module.exports = {
  //...
  stats: {
    loggingDebug: [
      'MyPlugin',
      /rspack/, // To get core logging
    ],
  },
};

stats.loggingTrace

  • 类型: boolean
  • 默认值:true

是否在日志输出中显示错误、警告和跟踪的堆栈跟踪。

stats.colors

  • 类型: boolean
  • 默认值:false

是否以不同的颜色输出。

在支持颜色输出的环境中执行 rspack build 时,默认值为 true

编译选项

stats.hash

  • 类型: boolean
  • 默认值:true

是否显示有关编译哈希的信息。

stats.env

  • 类型: boolean
  • 默认值:false

是否显示 --env 信息。

stats.builtAt

  • 类型: boolean
  • 默认值:true

是否显示构建日期和构建时间信息。

stats.version

  • 类型: boolean
  • 默认值:true

是否添加关于所用 Rspack 版本的信息。

stats.context

  • 类型: string

是否显示基础目录,一个绝对路径,用于缩短请求信息。

stats.publicPath

  • 类型: boolean
  • 默认值:true

是否显示publicPath

stats.outputPath

  • 类型: boolean
  • 默认值:true

是否显示output.path

stats.children

  • 类型: boolean
  • 默认值:true

是否显示output.path

stats.performance

  • 类型: boolean
  • 默认值:true

当文件大小超过performance.maxAssetSize时,是否显示性能提示。

stats.timings

  • 类型: boolean
  • 默认值:true

是否显示计时信息。

排序字段

对于assetsSortchunksSortmodulesSort,您可以通过几个可能的字段对项目进行排序。

  • 'id':项目的 id,项目可以是资产、模块或块。
  • 'name':导入时分配给项目的名称。
  • 'size':项目的字节大小。
  • 'chunks':项目源自哪些块(例如,如果一个块有多个子块:子块将根据其主块进行分组)。
  • 'errors':项目中的错误数量。
  • 'warnings':项目中的警告数量。
  • 'failed':项目是否编译失败。
  • 'cacheable':项目是否可缓存。
  • 'built':项目是否已构建。
  • 'prefetched':项目是否将被预取。
  • 'optional':项目是否可选。
  • 'identifier':项目的标识符。
  • 'index':项目的处理索引。
  • 'profile':项目的处理成本。
  • 'issuer':发行者的标识符。
  • 'issuerId':发行者的 id。
  • 'issuerName':发行者的名称。
  • 'issuerPath':完整的发行者路径。

扩展统计行为

如果您想使用预设的输出行为,但想输出更多或更少的单个字段,您可以在指定预设或全部后自定义字段的输出行为。

例如,只输出错误和模块引入的原因。

module.exports = {
  // ...
  stats: {
    preset: 'errors-only',
    reasons: true,
  },
};
本页内容