PageSourceSearch

https://rspack.rs/static/js/async/route-b67fe1cc41c7.6bd617e931.js

js rspack.rs collected 2026-10-02 02:40:22 UTC 50,284 bytes, 1 lines download raw bytes

1"use strict";(self.rspackChunkrspack_website=self.rspackChunkrspack_website||[]).push([["3h"],{hpR(s,n,r){r.r(n);var e=r("i"),i=r("fj"),o=r("V"),l=r("oD"),a=r("h2m");function c(s){let n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",span:"span",strong:"strong",ul:"ul",...(0,i.R)(),...s.components};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(n.h1,{id:"stats",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#stats",children:"#"}),"Stats"]}),"\n",(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.code,{children:"Stats"})," 对象会作为 ",(0,e.jsx)(n.code,{children:"rspack()"})," 回调函数的第二个参数,可以通过它获取到一次 Compilation 执行过程中的信息,包括:"]}),"\n",(0,e.jsxs)(n.ul,{children:["\n",(0,e.jsx)(n.li,{children:"错误和警告(如果存在)"}),"\n",(0,e.jsx)(n.li,{children:"计时信息"}),"\n",(0,e.jsx)(n.li,{children:"模块和 chunk 信息"}),"\n"]}),"\n",(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.code,{children:"Stats"})," 对象提供了两个重要方法:"]}),"\n",(0,e.jsxs)(n.ul,{children:["\n",(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.code,{children:"toJson()"}),": 以 ",(0,e.jsx)(n.a,{href:"/zh/api/javascript-api/stats-json.html",children:"Stats JSON"})," 对象的形式输出信息,常用于产物分析工具"]}),"\n",(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.code,{children:"toString()"}),": 以字符串形式输出信息,常用于控制台输出"]}),"\n"]}),"\n",(0,e.jsxs)(n.p,{children:["同时 Rspack 也提供了 ",(0,e.jsx)(n.code,{children:"StatsFactory"})," 和 ",(0,e.jsx)(n.code,{children:"StatsPrinter"})," 来更细粒度地控制输出的对象或字符串。"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",title:"Stats",lang:"txt",children:(0,e.jsxs)(n.code,{children:[(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{children:"Compilation ===============> Stats JSON =================> Stats Output"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{children:"           ╰─ StatsFactory ─╯           ╰─ StatsPrinter ─╯"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{children:"╰─────────── stats.toJson() ───────────╯"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{children:"╰───────────────────────── stats.toString() ──────────────────────────╯"})})]})})}),"\n",(0,e.jsxs)(n.p,{children:["通过 ",(0,e.jsx)(n.a,{href:"/zh/api/javascript-api/compilation.html#getstats",children:(0,e.jsx)(n.code,{children:"compilation.getStats()"})})," 或 ",(0,e.jsx)(n.code,{children:"new Stats(compilation)"})," 以创建一个 Compilation 关联的 Stats 对象。"]}),"\n",(0,e.jsxs)(o.Pq,{type:"warning",title:"注意时机",children:[(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.code,{children:"stats.toJson()"})," 和 ",(0,e.jsx)(n.code,{children:"stats.toString()"})," 依赖在 ",(0,e.jsx)(n.code,{children:"compiler.hooks.done"})," 阶段才最终稳定的编译产物。如果在其他时机调用(例如复用更早阶段拿到的旧 ",(0,e.jsx)(n.code,{children:"Stats"})," 对象),部分 Stats 字段可能不完整。"]}),(0,e.jsxs)(n.p,{children:["为了拿到完整且稳定的 Stats 输出,建议在 ",(0,e.jsx)(n.code,{children:"compiler.hooks.done"})," 中调用这些方法:"]}),(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"compiler"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"."}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"hooks"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"."}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"done"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".tap"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'MyPlugin'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" (stats) "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"  const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" statsJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" stats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".toJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"({ all"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" false"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" errors"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" true"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" warnings"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" true"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" });"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"  const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" statsText"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" stats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".toString"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"({ preset"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:" 'errors-warnings'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" });"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"statsJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:".errors);"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(statsText);"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"});"})})]})})})]}),"\n",(0,e.jsxs)(n.h2,{id:"stats-方法",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#stats-方法",children:"#"}),"Stats 方法"]}),"\n",(0,e.jsxs)(n.h3,{id:"haserrors",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#haserrors",children:"#"}),"hasErrors"]}),"\n",(0,e.jsx)(n.p,{children:"用来检查编译期是否有错误。"}),"\n",(0,e.jsx)(n.p,{children:(0,e.jsx)(n.strong,{children:"类型:"})}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"ts",children:(0,e.jsx)(n.code,{children:(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"hasErrors"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"}
1,children:"(): boolean;"})]})})})}),"\n",(0,e.jsx)(n.p,{children:"可以根据返回值处理编译错误:"}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"if"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" ("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"stats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".hasErrors"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"()) {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".error"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'编译失败'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"}"})})]})})}),"\n",(0,e.jsxs)(n.h3,{id:"haswarnings",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#haswarnings",children:"#"}),"hasWarnings"]}),"\n",(0,e.jsx)(n.p,{children:"用来检查编译期是否有警告。"}),"\n",(0,e.jsx)(n.p,{children:(0,e.jsx)(n.strong,{children:"类型:"})}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"ts",children:(0,e.jsx)(n.code,{children:(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"hasWarnings"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(): boolean;"})]})})})}),"\n",(0,e.jsx)(n.p,{children:"可以根据返回值处理编译警告:"}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"if"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" ("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"stats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".hasWarnings"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"()) {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".warn"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'编译完成,但存在警告'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"}"})})]})})}),"\n",(0,e.jsxs)(n.h3,{id:"tojson",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#tojson",children:"#"}),"toJson"]}),"\n",(0,e.jsxs)(n.p,{children:["以 ",(0,e.jsx)(n.a,{href:"/zh/api/javascript-api/stats-json.html",children:"Stats JSON"})," 对象形式返回编译信息。",(0,e.jsx)(n.a,{href:"/zh/config/stats.html",children:"Stats 配置"})," 可以是一个字符串(预设值)或是颗粒化控制的对象:"]}),"\n",(0,e.jsx)(n.p,{children:(0,e.jsx)(n.strong,{children:"类型:"})}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"ts",children:(0,e.jsx)(n.code,{children:(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"toJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(options"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"?:"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" StatsValue): StatsCompilation;"})]})})})}),"\n",(0,e.jsxs)(n.p,{children:["使用 ",(0,e.jsx)(n.code,{children:"'minimal'"})," 预设并打印错误数量:"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" statsJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" stats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".toJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'minimal'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"statsJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:".errorsCount);"})]})]})})}),"\n",(0,e.jsx)(n.p,{children:"也可以通过配置对象选择要输出的字段,然后打印编译哈希:"}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" statsJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" stats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".toJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"({"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  assets"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" false"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  hash"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" true"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"});"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"statsJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:".hash);"})]})]})})}),"\n",(0,e.jsxs)(n.h3,{id:"tostring",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#tostring",children:"#"}),"toString"]}),"\n",(0,e.jsxs)(n.p,{children:["以格式化的字符串形式返回描述编译信息(类似 ",(0,e.jsx)(n.a,{href:"/zh/api/cli.html",children:"CLI"})," 的输出)。"]}),"\n",(0,e.jsx)(n.p,{children:(0,e.jsx)(n.strong,{children:"类型:"})}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"ts",children:(0,e.jsx)(n.code,{children:(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"toString"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(opts"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"?:"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" StatsValue): string;"})]})})})}),"\n",(0,e.jsxs)(n.p,{children:["配置对象与 ",(0,e.jsx)(n.code,{children:"stats.toJson(options)"})," 一致,除了额外增加的一个选项:"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"stats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".toString"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"({"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"  // 增加控制台颜色开关"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  colors"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" true"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"});"})})]})})}),"\n",(0,e.jsxs)(n.p,{children:["下面是 ",(0,e.jsx)(n.code,{children:"stats.toString()"})," 用法的示例:"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"import"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" { rspack } "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"from"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:" '@rspack/core'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:";"})]}),"\n",(0,e.jsx)(n.span,{className:"line"}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"rspack"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  {"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"    // ..."})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  }"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  (err"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" stats) "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"    if"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" (err) {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"      console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".error"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(err);"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"      return"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:";"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"    }"})}),"\n",(0,e.jsx)(n.span,{className:"line"}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"    console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"      stats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".toString"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"({"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"        chunks"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" false"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:" // 使构建过程更静默无输出"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"        colors"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" true"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:" // 在控制台展示颜色"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"      })"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"    );"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  }"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})})]})})}),"\n",(0,e.jsxs)(n.h2,{id:"stats-属性",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#stats-属性",children:"#"}),"Stats 属性"]}),"\n",(0,e.jsxs)(n.h3,{id:"compilation",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#compilation",children:"#"}),"compilation"]}),"\n",(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:"类型:"})," ",(0,e.jsx)(n.code,{children:"Compilation"})]}
1),"\n",(0,e.jsx)(n.p,{children:"获取关联的 Compilation 对象。"}),"\n",(0,e.jsx)(l.S,{children:(0,e.jsx)(l.W,{className:"collapse-code-panel",header:"Stats.ts",children:(0,e.jsx)(a.A,{})},"stats")}),"\n",(0,e.jsxs)(n.h3,{id:"hash",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#hash",children:"#"}),"hash"]}),"\n",(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:"类型:"})," ",(0,e.jsx)(n.code,{children:"string | null"})]}),"\n",(0,e.jsxs)(n.p,{children:["获取此次构建的哈希值,等同于 ",(0,e.jsx)(n.a,{href:"/zh/api/javascript-api/compilation.html#hashfullhash",children:(0,e.jsx)(n.code,{children:"Compilation.hash"})}),"。"]}),"\n",(0,e.jsxs)(n.p,{children:["将其作为字符串使用前,先检查是否为 ",(0,e.jsx)(n.code,{children:"null"}),":"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"if"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" ("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"stats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:".hash "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"!=="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" null"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:") {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"stats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:".hash);"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"}"})})]})})}),"\n",(0,e.jsxs)(n.h2,{id:"multistats",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#multistats",children:"#"}),"MultiStats"]}),"\n",(0,e.jsxs)(n.p,{children:["当使用 ",(0,e.jsx)(n.a,{href:"/zh/api/javascript-api/compiler.html#multicompiler",children:(0,e.jsx)(n.code,{children:"MultiCompiler"})})," 执行多个编译任务时,编译结果会被包装为一个 ",(0,e.jsx)(n.code,{children:"MultiStats"})," 对象。它提供合并后的哈希,以及用于检查、序列化和格式化所有子编译结果的方法。"]}),"\n",(0,e.jsxs)(n.h3,{id:"hash-1",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#hash-1",children:"#"}),"hash"]}),"\n",(0,e.jsx)(o.Ex,{text:"只读",type:"info"}),"\n",(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:"类型:"})," ",(0,e.jsx)(n.code,{children:"string"})]}),"\n",(0,e.jsx)(n.p,{children:"获取由所有子编译哈希依次拼接而成的字符串。"}),"\n",(0,e.jsx)(n.p,{children:"打印拼接后的哈希:"}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsx)(n.code,{children:(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"multiStats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:".hash);"})]})})})}),"\n",(0,e.jsxs)(n.h3,{id:"haserrors-1",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#haserrors-1",children:"#"}),"hasErrors"]}),"\n",(0,e.jsxs)(n.p,{children:["任一子编译存在错误时返回 ",(0,e.jsx)(n.code,{children:"true"}),"。"]}),"\n",(0,e.jsx)(n.p,{children:(0,e.jsx)(n.strong,{children:"类型:"})}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"ts",children:(0,e.jsx)(n.code,{children:(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"hasErrors"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"}
1,children:"(): boolean;"})]})})})}),"\n",(0,e.jsx)(n.p,{children:"可以根据返回值处理所有子编译中的错误:"}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"if"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" ("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"multiStats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".hasErrors"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"()) {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".error"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'至少一个编译失败'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"}"})})]})})}),"\n",(0,e.jsxs)(n.h3,{id:"haswarnings-1",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#haswarnings-1",children:"#"}),"hasWarnings"]}),"\n",(0,e.jsxs)(n.p,{children:["任一子编译存在警告时返回 ",(0,e.jsx)(n.code,{children:"true"}),"。"]}),"\n",(0,e.jsx)(n.p,{children:(0,e.jsx)(n.strong,{children:"类型:"})}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"ts",children:(0,e.jsx)(n.code,{children:(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"hasWarnings"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(): boolean;"})]})})})}),"\n",(0,e.jsx)(n.p,{children:"可以根据返回值处理所有子编译中的警告:"}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"if"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" ("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"multiStats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".hasWarnings"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"()) {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".warn"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'至少一个编译存在警告'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"}"})})]})})}),"\n",(0,e.jsxs)(n.h3,{id:"tojson-1",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#tojson-1",children:"#"}),"toJson"]}),"\n",(0,e.jsxs)(n.p,{children:["返回一个 ",(0,e.jsx)(n.code,{children:"StatsCompilation"}),",其 ",(0,e.jsx)(n.code,{children:"children"})," 数组包含每个子编译的 ",(0,e.jsx)(n.a,{href:"/zh/api/javascript-api/stats-json.html",children:"Stats JSON"}),"。对所有子编译均启用的字段(如 ",(0,e.jsx)(n.code,{children:"errors"})," 和 ",(0,e.jsx)(n.code,{children:"warnings"}),")还会汇总到顶层。"]}),"\n",(0,e.jsx)(n.p,{children:(0,e.jsx)(n.strong,{children:"类型:"})}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"ts",children:(0,e.jsx)(n.code,{children:(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"toJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(options: boolean "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"|"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" StatsPresets "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"|"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" MultiStatsOptions): StatsCompilation;"})]})})})}),"\n",(0,e.jsx)(n.p,{children:"为所有子编译使用同一个预设,并查看ç
1»“果数量:"}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" statsJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" multiStats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".toJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'minimal'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"statsJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"."}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"children"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"?."}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"length"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]})]})})}),"\n",(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.code,{children:"MultiStatsOptions"})," 还支持通过 ",(0,e.jsx)(n.code,{children:"children"})," 选项分别配置每个子编译。以下示例打印第一个子编译的错误信息:"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" statsJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" multiStats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".toJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"({"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  children"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" ["})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"    { all"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" false"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" errors"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" true"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" }"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"    { all"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" false"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" assets"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" true"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" }"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  ]"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"});"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"statsJson"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:".children?.["}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"0"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"]?.errors);"})]})]})})}),"\n",(0,e.jsxs)(n.h3,{id:"tostring-1",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#tostring-1",children:"#"}),"toString"]}),"\n",(0,e.jsxs)(n.p,{children:["根据 ",(0,e.jsx)(n.a,{href:"/zh/config/stats.html",children:"Stats 配置"})," 格式化每个子编译,再将结果拼接成一个字符串。"]}),"\n",(0,e.jsx)(n.p,{children:(0,e.jsx)(n.strong,{children:"类型:"})}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"ts",children:(0,e.jsx)(n.code,{children:(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"toString"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(options: boolean "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"|"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" StatsPresets "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"|"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" MultiStatsOptions): string;"})]})})})}),"\n",(0,e.jsx)(n.p,{children:"为所有子编译使用同一个预设,并打印合并后的输出:"}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"js",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" statsText"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" multiStats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".toString"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'minimal'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(statsText);"})]})]})})}),"\n",(0,e.jsxs)(n.h2,{id:"stats-factory",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#stats-factory",children:"#"}),"Stats factory"]}),"\n",(0,e.jsx)(n.p,{children:"用于从 Compilation 生成 Stats JSON 对象,并且提供了钩子以在生成过程中进行细粒度的控制。"}),"\n",(0,e.jsxs)(n.p,{children:["可通过 ",(0,e.jsx)(n.a,{href:"/zh/api/plugin-api/compilation-hooks.html#statsfactory",children:(0,e.jsx)(n.code,{children:"compilation.hooks.statsFactory"})})," 获取。或者通过 ",(0,e.jsx)(n.code,{children:"new StatsFactory()"})," 创建新实例。"]}),"\n",(0,e.jsxs)(n.h3,{id:"hooks",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#hooks",children:"#"}),"Hooks"]}),"\n",(0,e.jsxs)(n.p,{children:["详见 ",(0,e.jsx)(n.a,{href:"/zh/api/plugin-api/stats-hooks.html#statsfactory",children:"StatsFactory 钩子"})]}),"\n",(0,e.jsxs)(n.h3,{id:"create",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#create",children:"#"}),"create"]}),"\n",(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.code,{children:"StatsFactory"})," 的核心方法,根据 ",(0,e.jsx)(n.code,{children:"type"})," 指定当前数据结构,查找并运行对应的生成器以生成 Stats 项目。"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"ts",children:(0,e.jsx)(n.code,{children:(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"stats "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" statsFactory"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".create"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'compilation'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" compilation"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {});"})]})})})}),"\n",(0,e.jsxs)(n.blockquote,{children:["\n",(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.code,{children:"StatsFactory"})," 对象仅负责处理调用钩子,对应类型的处理代码的处理代码可在 ",(0,e.jsx)(n.a,{href:"https://github.com/web-infra-dev/rspack/blob/main/packages/rspack/src/stats/DefaultStatsFactoryPlugin.ts",rel:"noopener noreferrer",target:"_blank",children:(0,e.jsx)(n.code,{children:"DefaultStatsFactoryPlugin"})})," 中找到。"]}),"\n"]}),"\n",(0,e.jsxs)(n.h2,{id:"stats-printer",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#stats-printer",children:"#"}),"Stats printer"]}),"\n",(0,e.jsx)(n.p,{children:"用于从 Stats JSON 对象生成输出字符串,并且提供了钩子以在生成过程中进行细粒度的控制。"}),"\n",(0,e.jsxs)(n.p,{children:["可通过 ",(0,e.jsx)(n.a,{href:"/zh/api/plugin-api/compilation-hooks.html#statsprinter",children:(0,e.jsx)(n.code,{children:"compilation.hooks.statsPrinter"})})," 获取。或者通过 ",(0,e.jsx)(n.code,{children:"new StatsPrinter()"})," 创建新实例。"]}),"\n",(0,e.jsxs)(n.h3,{id:"hooks-1",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#hooks-1",children:"#"}),"Hooks"]}),"\n",(0,e.jsxs)(n.p,{children:["详见 ",(0,e.jsx)(n.a,{href:"/zh/api/plugin-api/stats-hooks.html#statsprinter",children:"StatsPrinter 钩子"})]}),"\n",(0,e.jsxs)(n.h3,{id:"print",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#print",children:"#"}),"print"]}),"\n",(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.code,{children:"StatsPrinter"})," 的核心方法,根据 ",(0,e.jsx)(n.code,{children:"type"})," 指定当前数据结构,查找并运行对应的生成器以生成 Stats 项目的输出字符串。"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"ts",children:(0,e.jsx)(n.code,{children:(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"stats "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" statsPrinter"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".print"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'compilation'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" stats"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {});"})]})})})}),"\n",(0,e.jsxs)(n.blockquote,{children:["\n",(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.code,{children:"StatsPrinter"})," 对象仅负责处理调用钩子,对应类型的处理代码的处理代码可在 ",(0,e.jsx)(n.a,{href:"https://github.com/web-infra-dev/rspack/blob/main/packages/rspack/src/stats/DefaultStatsPrinterPlugin.ts",rel:"noopener noreferrer",target:"_blank",children:(0,e.jsx)(n.code,{children:"DefaultStatsPrinterPlugin"})})," 中找到。"]}),"\n"]})]})}function t(){let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{wrapper:n}={...(0,i.R)(),...s.components};return n?(0,e.jsx)(n,{...s,children:(0,e.jsx)(c,{...s})}):c(s)}t.__RSPRESS_PAGE_META={},t.__RSPRESS_PAGE_META["zh%2Fapi%2Fjavascript-api%2Fstats.mdx"]={toc:[{id:"stats-方法",text:"Stats 方法",depth:2},{id:"haserrors",text:"hasErrors",depth:3},{id:"haswarnings",text:"hasWarnings",depth:3},{id:"tojson",text:"toJson",depth:3},{id:"tostring",text:"toString",depth:3},{id:"stats-属性",text:"Stats 属性",depth:2},{id:"compilation",text:"compilation",depth:3},{id:"hash",text:"hash",depth:3},{id:"multistats",text:"MultiStats",depth:2},{id:"hash-1",text:"hash",depth:3},{id:"haserrors-1",text:"hasErrors",depth:3},{id:"haswarnings-1",text:"hasWarnings",depth:3},{id:"tojson-1",text:"toJson",depth:3},{id:"tostring-1",text:"toString",depth:3},{id:"stats-factory",text:"Stats factory",depth:2},{id:"hooks",text:"Hooks",depth:3},{id:"create",text:"create",depth:3},{id:"stats-printer",text:"Stats printer",depth:2},{id:"hooks-1",text:"Hooks",depth:3},{id:"print",text:"print",depth:3}],title:"Stats",headingTitle:"Stats",frontmatter:{description:"Stats 对象会作为 rspack() 回调函数的第二个参数,可以通过它获取到一次 Compilation 执行过程中的信息,包括:"}},r.d(n,{default:()=>t})},oD(s,n,r){var e=r("VU");r("BO");let i=e.SD.Panel;r.d(n,{S:()=>e.SD},{W:i})}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.