本节内容派生于以下链接指向的内容 ,并遵守 CC BY 4.0 许可证的规定。
以下内容如果没有特殊声明,可以认为都是基于原内容的修改和删减后的结果。
打包信息:该选项可用于生成分析模块的依赖关系图,以及优化编译速度的打包信息。
@rspack/cli
,rspack build --json stats.json
。stats.toJson(options)
、stats.toString(options)
。boolean | string | Object
{"preset":"errors-warnings","timings":true}
预设 | 描述 |
---|---|
'normal' (true ) |
按照 stats options 的默认值输出 |
'none' (false ) |
不输出任何信息 |
'verbose' |
输出所有信息 |
'errors-only' |
只输出错误相关信息 |
'errors-warnings' |
只输出错误和警告相关信息 |
'minimal' |
只在编译或者错误发生时输出 |
'detailed' |
输出除了 chunkModules 之外 chunkRootModules 的所有信息 |
'summary' |
只输出摘要 |
可以指定具体哪些打包信息进行输出,以下所有字段都是可选(optional)的。
boolean
undefined
控制所有 stats options 是否输出。
开启 stats.all
会导致大量的 Rust 与 JavaScript 的数据传输,这将显著提高 Stats 生成耗时,请谨慎使用。
boolean | string
undefined
boolean
true
是否输出产物相关信息,参考 Asset 对象结构。
string
"id"
基于指定的字段对产物排序。可用的排序字段见字段排序。使用 !
作为前缀可以反转排序结果。
number
15
展示的产物数量(超过的部分将以分组方式折叠)。
boolean
false
是否展示与产物相关的其他资源产物信息(如资源的 SourceMap 文件)。
Array<string | RegExp | (name: string) => boolean> | string | RegExp | (name: string) => boolean | false
false
隐藏匹配的资源,匹配方式支持字符串、正则、接收资源名称并返回布尔的函数,同时也支持以上类型的数组。
boolean
true
是否展示被缓存的资源(若为 false
则只展示被生成的产物)。
boolean
是否按照资源与 chunk 的关系分组。
boolean
是否按照资源的状态分组(如被生成、被缓存等)。
boolean
是否按照资源的扩展名分组。
boolean
是否按照资源的信息分组(如 immutable、development、hotModuleReplacement 等)。
boolean
是否按照资源的路径分组。
boolean
true
是否展示 Chunk 信息,参考 Chunk 对象结构。
boolean
true
是否展示 Chunk 内包含的模块信息。
number
10
展示的 Chunk 内模块数量(超过的部分将以分组方式折叠)。
boolean
false
是否展示 Chunk 内被其他模块所依赖的模块。
boolean
true
是否展示 Chunk 的引入来源信息。
boolean
false
是否展示 Chunk 的父子、兄弟关联信息。
string
"id"
基于指定的字段对 Chunk 排序。可用的排序字段见字段排序。使用 !
作为前缀可以反转排序结果。
boolean
false
是否展示模块 ID 和 Chunk ID。
boolean
true
是否展示 ChunkGroup 信息,参考 ChunkGroup 对象结构。
boolean
true
是否展示 ChunkGroup 的辅助资源。
boolean
true
是否展示子 ChunkGroup 相关信息(如预取 prefetched、预载 preloaded 的 ChunkGroup 信息)。
number
5
展示 ChunkGroup 的最大资源数量。
boolean | 'auto'
false
是否展示 Entrypoint 相关信息,参考 Entrypoint 对象结构。
当 stats.entrypoints
被设置为 'auto'
Rspack 将自动决定是否在 stats 输出中展示入口信息。
boolean
true
是否展示模块信息,参考 Module 对象结构。
boolean
true
是否展示模块错误/警告时的依赖链信息。
boolean
true
是否展示模块包含的资源信息。
number
15
展示的模块数量(超过的部分将以分组方式折叠)。
string
"id"
基于指定的字段对模块排序。可用的排序字段见字段排序。使用 !
作为前缀可以反转排序结果。
boolean
true
是否展示模块的引入来源信息。
number
1000
展示的引入来源信息长度(超过的部分将以分组方式折叠)。
boolean
false
是否展示模块的源码。
boolean
false
是否展示模块与入口模块的距离。
boolean
false
是否展示孤立模块。
孤立模块指不被任何 Chunk 包含的模块。
boolean
true
是否展示运行时模块。
运行时模块为 Rspack 内置模块,用于提供各种运行时能力。
boolean
true
是否展示被缓存的模块。
Array<string | RegExp | (name: string) => boolean> | string | RegExp | (name: string) => boolean | false
false
隐藏匹配的模块,匹配方式支持字符串、正则、函数。
boolean
true
是否展示嵌套在其他模块中的模块信息(如 ModuleConcatenation 合并前的模块信息)。
number
10
展示的被嵌套模块数量(超过的部分将以分组方式折叠)。
boolean
是否基于模块的属性分组(是否包含错误、是否包含警告、是否包含资源、是否必须、是否为孤立模块、是否为被依赖的模块等)。
boolean
是否基于模块的缓存状态分组(包括已缓存、已构建且可缓存)。
boolean
是否基于模块的扩展名分组。
boolean
是否基于模块的路径分组。
boolean
是否基于模块的类型分组。
boolean
是否按模块的 layer 进行分组。
boolean
是否基于来源模块对引入来源信息分组。
boolean
false
是否展示模块的导出。
boolean
false
是否展示模块被使用的导出。
boolean
false
是否展示模块优化失效的原因。
boolean
true
是否展示构建过程中产生的错误。
boolean
true
是否展示错误的总个数。
boolean
false
是否展示错误的详情。为 'auto'
时,若错误仅有两个及以下则将展示错误详情。
number
5
展示单个错误时的最大行数。
boolean
true
是否展示错误的堆栈信息。
boolean
true
是否展示构建过程中产生的警告。
boolean
true
是否展示警告的总个数。
number
5
展示的警告最大行数。
'info' | 'none' | 'error' | 'warn' | 'log' | 'verbose' | boolean
是否展示 compilation.getLogger
所记录的日志信息。
'none'
, false
: 禁用日志'error'
: 仅展示错误'warn'
: 仅展示错误与告警'info'
: 展示错误,告警与信息'log'
, true
: 展示错误,告警与信息,日志,分组,清理信息。被折叠的部分也会以折叠状态展示。'verbose'
: 输出所有日志除了调试信息和堆栈信息。被折叠的部分也会以展开状态展示。Array<string | RegExp | function (name) => boolean>
是否展示插件和 loader 中指定 Logger 的调试信息。当 stats.logging
为 false
时 stats.loggingDebug
会被忽略。
boolean
true
是否展示堆栈信息。
boolean
false
是否在展示日志时添加颜色。
在支持颜色输出的环境中执行 rspack build
时,它被默认设置为 true
。
boolean
true
是否展示本次构建的哈希。
boolean
false
是否展示 --env
参数传入的信息。
boolean
true
是否展示构建的开始时间点。
boolean
true
是否展示 Rspack 的版本号。
string
是否展示构建的基础目录,为绝对路径,可用来缩短请求信息长度。
boolean
true
是否展示产物的加载路径。
boolean
true
是否展示产物的输出路径。
boolean
true
是否展示 childCompiler 的 stats 信息。
boolean
true
是否展示产物文件超过 performance.maxAssetSize
配置时的提示信息。
boolean
true
是否展示本次构建的耗时。
对于 assetsSort
, chunksSort
和 modulesSort
它们有几个可用的字段用于排序:
'id'
: 是元素(指资源,Chunk 或模块,下同)的 id'name'
: 元素的名称,在导引的时候被分配'size'
: 元素的大小,单位字节(bytes)'chunks'
: 元素来源于哪些 chunks(例如,一个 Chunk 有多个子 Chunk,子 Chunk 会被基于主 Chunk 组合到一起)'errors'
: 元素中的错误数量'warnings'
: 元素中的告警数量'failed'
: 元素是否编译失败'cacheable'
: 元素是否可被缓存'built'
: 资源是否被构建'prefetched'
: 资源是否可被预取'optional'
: 资源是否可选'identifier'
: 元素的标识符'index'
: 元素处理顺序'profile'
: 元素的处理耗时'issuer'
: 上游(issuer)的标识符'issuerId'
: 上游(issuer)的 ID'issuerName'
: 上游(issuer)的名称'issuerPath'
: 完整的上游(issuer)路径如果你想使用预设的输出行为,但又想对个别字段进行自定义设置,可以在指定 stats.preset
或 stats.all
之后对字段的输出行为进行自定义。
举例来说,只输出错误和模块被引入的原因: