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

當選項未定義時,統計選項的回退值。它優先於本機 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

是否顯示與其他資源相關的資源資訊(例如資源的 SourceMap)。

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

是否依照資源與 chunk 的關聯性進行分組。

stats.groupAssetsByEmitStatus

  • 類型: boolean

是否依照資源的狀態(已輸出、比較輸出或已快取)進行分組。

stats.groupAssetsByExtension

  • 類型: boolean

是否依照資源的副檔名進行分組。

stats.groupAssetsByInfo

  • 類型: boolean

是否依照資源的資訊(immutable、development、hotModuleReplacement 等)進行分組。

stats.groupAssetsByPath

  • 類型: boolean

是否依照資源的路徑進行分組。

Chunk 選項

stats.chunks

  • 類型: boolean
  • 預設值:true

是否顯示有關 chunk 的資訊,詳細資訊請參閱 chunk 物件

stats.chunkModules

  • 類型: boolean
  • 預設值:true

是否顯示有關建置模組的資訊,以提供 chunk 的相關資訊。

stats.chunkModulesSpace

  • 類型: number
  • 預設值:10

應該顯示多少個 chunk 模組項目(群組將會被摺疊以符合此空間)。

stats.dependentModules

  • 類型: boolean
  • 預設值:false

是否顯示屬於 chunk 其他模組的依賴項的 chunk 模組。

stats.chunkOrigins

  • 類型: boolean
  • 預設值:true

是否顯示有關 chunk 的來源和 chunk 合併的資訊。

stats.chunkRelations

  • 類型: boolean
  • 預設值:false

是否顯示 chunk 的父層、子層和同層。

stats.chunksSort

  • 類型: string
  • 預設值:"id"

依照給定的欄位排序 chunk。所有排序欄位都允許使用。在值中使用 ! 前綴可以反轉給定欄位的排序順序。

stats.ids

  • 類型: boolean
  • 預設值:false

是否顯示模組和 chunk 的 ID。

ChunkGroup 選項

stats.chunkGroups

  • 類型: boolean
  • 預設值:true

是否顯示有關 namedChunkGroups 的資訊,詳細資訊請參閱 chunk group 物件

stats.chunkGroupAuxiliary

  • 類型: boolean
  • 預設值:true

是否在 chunk 群組中顯示輔助資源。

stats.chunkGroupChildren

  • 類型: boolean
  • 預設值:true

是否顯示 chunk 群組的子層(例如預先擷取、預先載入的 chunk 和資源)。

stats.chunkGroupMaxAssets

  • 類型: number
  • 預設值:5

應該在 chunk 群組中顯示多少個資源。

stats.entrypoints

  • 類型: boolean | 'auto'
  • 預設值:false

是否顯示具有相應 bundles 的進入點,詳細資訊請參閱 entrypoint 物件

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

是否顯示孤立模組。

如果模組未包含在任何 chunk 中,則該模組為孤立模組。

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

是否顯示模組的 exports。

stats.usedExports

  • 類型: boolean
  • 預設值:false

是否顯示模組的哪些 exports 有被使用。

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':發行者的完整路徑。

擴展 stats 行為

如果您想使用預設輸出行為,但想要輸出更多或更少的個別欄位,您可以在指定預設值或全部之後自訂欄位的輸出行為。

例如,僅輸出錯誤和模組被引入的原因。

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