?object
? ?string
?
stats 選項讓你更精確地控制 bundle 信息該怎么顯示。 如果你不希望使用 quiet 或 noInfo 這樣的不顯示信息,而是又不想得到全部的信息,只是想要獲取某部分 bundle 的信息,使用 stats 選項是比較好的折衷方式。
module.exports = {
//...
stats: 'errors-only',
};
webpack 有一些特定的預設選項給統(tǒng)計信息輸出:
預設 | 可選值 | 描述 |
---|---|---|
'errors-only'
|
none | 只在發(fā)生錯誤時輸出 |
'errors-warnings'
|
none | 只在發(fā)生錯誤或有警告時輸出 |
'minimal'
|
none | 只在發(fā)生錯誤或新的編譯開始時輸出 |
'none'
|
false
|
沒有輸出 |
'normal'
|
true
|
標準輸出 |
'verbose'
|
none | 全部輸出 |
'detailed'
|
none | 全部輸出除了 chunkModules 和 chunkRootModules
|
'summary'
|
none | 輸出 webpack 版本,以及警告數(shù)和錯誤數(shù) |
你可以在統(tǒng)計輸出里指定你想看到的信息。
當統(tǒng)計信息配置沒被定義,則該值是一個回退值。它的優(yōu)先級比本地的 webpack 默認值高。
module.exports = {
//...
stats: {
all: undefined,
},
};
?boolean = true
?
告知 stats 是否展示資源信息。將 stats.assets 設置成 false 會禁用.
module.exports = {
//...
stats: {
assets: false,
},
};
?string = 'id'
?
告知 stats 基于給定的字段對資源進行排序。所有的 排序字段都被允許作為 stats.assetsSort的值。使用 ! 作為值的前綴以反轉(zhuǎn)基于給定字段的排序結(jié)果。
module.exports = {
//...
stats: {
assetsSort: '!size',
},
};
?boolean = true
?
告知 stats 是否添加構建日期與時間信息。將 stats.builtAt 設置成 false 來隱藏.
module.exports = {
//...
stats: {
builtAt: false,
},
};
?boolean = true
?
告知 stats 是否添加模塊內(nèi)的資源信息。將 stats.moduleAssets 設置成 false 以隱藏。
module.exports = {
//...
stats: {
moduleAssets: false,
},
};
?number = 15
?
告訴 stats 應該顯示多少個 asset 項目(將以組的方式折疊,以適應這個空間)。
module.exports = {
//...
stats: {
assetsSpace: 15,
},
};
?number = 15
?
告訴 stats 應該顯示多少個模塊項目(將以組的方式折疊,以適應這個空間)。
module.exports = {
//...
stats: {
modulesSpace: 15,
},
};
?number = 10
?
告訴 stats 顯示多少個 chunk 模塊項目(將以組的方式折疊,以適應這個空間)。
module.exports = {
//...
stats: {
chunkModulesSpace: 15,
},
};
?boolean
?
告知 stats 是否添加嵌套在其他模塊中的模塊信息(比如模塊聯(lián)邦)。
module.exports = {
//...
stats: {
nestedModules: true,
},
};
?number = 10
?
告訴 stats 應該顯示多少個嵌套模塊的項目(將以組的方式折疊,以適應這個空間)。
module.exports = {
//...
stats: {
nestedModulesSpace: 15,
},
};
舊版的 stats.cachedModules.
?boolean = true
?
告訴 stats 是否要緩存(非內(nèi)置)模塊的信息。
module.exports = {
//...
stats: {
cachedModules: false,
},
};
?boolean = true
?
告訴 stats 是否要添加運行時模塊的信息。
module.exports = {
//...
stats: {
runtimeModules: false,
},
};
?boolean
?
告訴 stats 是否要展示該 chunk 依賴的其他模塊的 chunk 模塊。
module.exports = {
//...
stats: {
dependentModules: false,
},
};
?boolean
?
告訴 stats 是否按照 asset 與 chunk 的關系進行分組。
module.exports = {
//...
stats: {
groupAssetsByChunk: false,
},
};
?boolean
?
告訴 stats 是否按照 asset 的狀態(tài)進行分組(emitted,對比 emit 或緩存).
module.exports = {
//...
stats: {
groupAssetsByEmitStatus: false,
},
};
?boolean
?
告訴 stats 是否根據(jù)它們的拓展名聚合靜態(tài)資源。
module.exports = {
//...
stats: {
groupAssetsByExtension: false,
},
};
?boolean
?
告訴 stats 是否按照 asset 信息對 asset 進行分組(immutable,development。hotModuleReplacement 等)。
module.exports = {
//...
stats: {
groupAssetsByInfo: false,
},
};
?boolean
?
告訴 stats 是否根據(jù)它們的路徑聚合靜態(tài)資源。
module.exports = {
//...
stats: {
groupAssetsByPath: false,
},
};
?boolean
?
告訴 stats 是否按模塊的屬性進行分組(errors,warnings,assets,optional,orphan 或者 dependent)。
module.exports = {
//...
stats: {
groupModulesByAttributes: false,
},
};
?boolean
?
告訴 stats 是否按模塊的緩存狀態(tài)進行分組(已緩存或者已構建并且可緩存)。
module.exports = {
//...
stats: {
groupModulesByCacheStatus: true,
},
};
?boolean
?
告訴 stats 是否按模塊的拓展名進行分組。
module.exports = {
//...
stats: {
groupModulesByExtension: true,
},
};
?boolean
?
告訴 stats 是否按模塊的 layer 進行分組。
module.exports = {
//...
stats: {
groupModulesByLayer: true,
},
};
?boolean
?
告訴 stats 是否按模塊的路徑進行分組。
module.exports = {
//...
stats: {
groupModulesByPath: true,
},
};
?boolean
?
告訴 stats 是否按模塊的類型進行分組。
module.exports = {
//...
stats: {
groupModulesByType: true,
},
};
?boolean
?
5.46.0+
按照原始模塊對原因進行分組,以避免出現(xiàn)大量的原因集合。
module.exports = {
//...
stats: {
groupReasonsByOrigin: true,
},
};
?boolean = true
?
告知 stats 是否添加關于緩存資源的信息。 將 stats.cachedAssets 設置成 false 會告知 stats 僅展示被生成的文件 (并非被構建的模塊)。
module.exports = {
//...
stats: {
cachedAssets: false,
},
};
?boolean = true
?
告知 stats 是否添加關于子模塊的信息。
module.exports = {
//...
stats: {
children: false,
},
};
?boolean = true
?
告知 stats 是否添加關于 chunk 的信息。 將 stats.chunks 設置為 false 會引發(fā)更少的輸出。
module.exports = {
//...
stats: {
chunks: false,
},
};
?boolean = true
?
告知 stats 是否添加關于 namedChunkGroups 的信息。
module.exports = {
//...
stats: {
chunkGroups: false,
},
};
?boolean = true
?
告知 stats 是否添加關于已構建模塊和關于 chunk 的信息。
module.exports = {
//...
stats: {
chunkModules: false,
},
};
?boolean = true
?
告知 stats 是不添加關于 chunks 的來源和 chunk 合并的信息。
module.exports = {
//...
stats: {
chunkOrigins: false,
},
};
?string = 'id'
?
告知 stats 基于給定的字段給 chunks 排序。所有 排序字段 都被允許用于作為 stats.chunksSort 的值。使用 ! 作為值里的前綴用以將基于給定字段排序的結(jié)果反轉(zhuǎn)。
module.exports = {
//...
stats: {
chunksSort: 'name',
},
};
?string
?
stats 的基本目錄,用來縮短請求信息的 絕對路徑。
const path = require('path');
module.exports = {
//...
stats: {
context: path.resolve(__dirname, 'src/components'),
},
};
默認情況下,context 的值是 Node.js 的當前工作目錄。
?boolean = false
? ?object
?
告知 stats 是否輸出不同的顏色。
module.exports = {
//...
stats: {
colors: true,
},
};
它也可用通過命令行的參數(shù)實現(xiàn):
npx webpack --stats-colors
To disable:
npx webpack --no-stats-colors
你可以通過使用 ANSI escape sequences 指定你自己的命令行終端顏色。
module.exports = {
//...
colors: {
green: '\u001b[32m',
},
};
?boolean = false
?
告知 stats 是否展示每個模塊與入口文件的距離。
module.exports = {
//...
stats: {
depth: true,
},
};
?boolean = true
? ?string = 'auto'
?
告知 stats 是否展示入口文件與對應的文件 bundles。
module.exports = {
//...
stats: {
entrypoints: false,
},
};
當 stats.entrypoints 被設置為 'auto' 時,webpack 將自動決定是否在 stats 輸出中展示入口信息。
?boolean = false
?
告知 stats 是否展示 --env 信息.
module.exports = {
//...
stats: {
env: true,
},
};
?boolean = false
?
告知 stats 是否隱藏 孤兒(orphan) 模塊. 一個模塊屬于 孤兒(orphan) 如果它不被包含在任何一個 chunk 里。孤兒模塊默認在 stats 中會被隱藏。
module.exports = {
//...
stats: {
orphanModules: true,
},
};
?boolean = true
?
告知 stats 是否展示錯誤。
module.exports = {
//...
stats: {
errors: false,
},
};
?boolean
? ?string = "auto"
?
告知 stats 是否添加錯誤的詳情。如果默認值為 'auto',當只有 2 個或更少的錯誤時,它將顯示錯誤詳情。
module.exports = {
//...
stats: {
errorDetails: false,
},
};
?boolean = true
?
告知 stats 是否展示錯位的棧追蹤信息。
module.exports = {
//...
stats: {
errorStack: false,
},
};
?array = []: string | RegExp | function (assetName) => boolean
? ?string
? ?RegExp
? ?function (assetName) => boolean
?
告知 stats 排除掉匹配的資源信息。這個可以通過設置一個 字符串, 一個 正則表達式, 一個 函數(shù) 取得資源的名字作為入?yún)⑶曳祷匾粋€ 布爾值。 stats.excludeAssets 可以是一個包括上面任意一類型值的 數(shù)組 。
module.exports = {
//...
stats: {
excludeAssets: [
'filter',
/filter/,
(assetName) => assetName.contains('moduleA'),
],
},
};
?array = []: string | RegExp | function (assetName) => boolean
? ?string
? ?RegExp
? ?function (assetName) => boolean
? ?boolean: false
?
告知 stats 排除掉匹配的資源信息。這個可以通過設置一個 字符串, 一個 正則表達式, 一個 函數(shù) 取得資源的名字作為入?yún)⑶曳祷匾粋€ 布爾值。 stats.excludeModules 可以是一個包括上面任意一類型值的 數(shù)組 。stats.excludeModules 會與 stats.exclude 的配置值進行合并。
module.exports = {
//...
stats: {
excludeModules: ['filter', /filter/, (moduleSource) => true],
},
};
將 stats.excludeModules 設置為 false 會禁用以上的排除行為。
module.exports = {
//...
stats: {
excludeModules: false,
},
};
詳參 stats.excludeModules.
?boolean = true
?
告知 stats 是否添加關于編譯哈希值的信息。
module.exports = {
//...
stats: {
hash: false,
},
};
?string = 'info': 'none' | 'error' | 'warn' | 'info' | 'log' | 'verbose' boolean
?
告知 stats 是否添加日志輸出。
'none'
?, false - 禁用日志'error'
? - 僅顯示錯誤'warn'
? - 僅顯示錯誤與告警'info'
? - 顯示錯誤,告警與信息'log'
?, true - 顯示錯誤,告警與信息,日志,組別,清理。折疊組別會在折疊狀態(tài)中被顯示 。'verbose'
? - 輸出所有日志除了調(diào)試與追蹤。 折疊組別會在擴展狀態(tài)中被顯示 。module.exports = {
//...
stats: {
logging: 'verbose',
},
};
?array = []: string | RegExp | function (name) => boolean
? ?string
? ?RegExp function (name) => boolean
?
告知 stats 去包括特定的日志工具調(diào)試信息比如插件或加載器的日志工具。當 stats.logging 被設置為 false, stats.loggingDebug 配置會被忽略。
module.exports = {
//...
stats: {
loggingDebug: [
'MyPlugin',
/MyPlugin/,
/webpack/, // To get core logging
(name) => name.contains('MyPlugin'),
],
},
};
?boolean = true
?
啟用錯誤,告警與追蹤的日志輸出中的堆棧追蹤。將 stats.loggingTrace 設置為 false 隱藏追蹤。
module.exports = {
//...
stats: {
loggingTrace: false,
},
};
?boolean = true
?
告知 stats 是否添加關于構建模塊的信息。
module.exports = {
//...
stats: {
modules: false,
},
};
?string = 'id'
?
告知 stats 基于給定的字段對資源進行排序。所有的 排序字段都被允許作為 stats.modulesSort的值。使用 ! 作為值的前綴以反轉(zhuǎn)基于給定字段的排序結(jié)果。
module.exports = {
//...
stats: {
modulesSort: 'size',
},
};
?boolean = true
?
告知 stats 展示依賴和告警/錯誤的來源。stats.moduleTrace 從 webpack 2.5.0 起可用。
module.exports = {
//...
stats: {
moduleTrace: false,
},
};
?boolean
?
告訴 stats 展示模塊優(yōu)化失效的原因。
module.exports = {
//...
stats: {
optimizationBailout: false,
},
};
?boolean = true
?
告知 stats 展示 outputPath.
module.exports = {
//...
stats: {
outputPath: false,
},
};
?boolean = true
?
告知 stats 當文件大小超過 performance.maxAssetSize配置值時,展示性能提性。
module.exports = {
//...
stats: {
performance: false,
},
};
?string boolean: false
?
為展示的信息類型設置 預設值。這對擴展統(tǒng)計信息行為非常有用。
module.exports = {
//...
stats: {
preset: 'minimal',
},
};
將 stats.preset 的值設置為false 告知 webpack 使用 'none' 統(tǒng)計信息預設值。
?boolean = false
?
告知 stats 去展示模塊的導出。
module.exports = {
//...
stats: {
providedExports: true,
},
};
?boolean = true
?
添加展示 errors 個數(shù)。
module.exports = {
//...
stats: {
errorsCount: false,
},
};
?boolean = true
?
添加展示 warnings 個數(shù)。
module.exports = {
//...
stats: {
warningsCount: false,
},
};
?boolean = true
?
告知 stats 展示 publicPath。
module.exports = {
//...
stats: {
publicPath: false,
},
};
?boolean = true
?
告知 stats 添加關于模塊被引用的原因信息。
module.exports = {
//...
stats: {
reasons: false,
},
};
?number
?
5.46.0+
用于顯示原因的空間(分組將被折疊以適應此空間)。
module.exports = {
//...
stats: {
reasonsSpace: 1000,
},
};
?boolean = false
?
告訴 stats 是否需添加與其他 assets 相關的信息(例如 assets 的 SourceMaps)。
module.exports = {
//...
stats: {
relatedAssets: true,
},
};
?boolean = false
?
告知 stats 去添加模塊的源碼。
module.exports = {
//...
stats: {
source: true,
},
};
?boolean = true
?
告知 stats 添加時間信息。
module.exports = {
//...
stats: {
timings: false,
},
};
?boolean = false
?
通知 stats 給 module 和 chunk 添加 id。
module.exports = {
//...
stats: {
ids: true,
},
};
?boolean = false
?
告知 stats 是否展示模塊用了哪些導出。
module.exports = {
//...
stats: {
usedExports: true,
},
};
?boolean = true
?
告知 stats 添加關于 webpack 版本的信息。
module.exports = {
//...
stats: {
version: false,
},
};
?boolean = true
?
在 chunk 組中展示輔助 asset。
module.exports = {
//...
stats: {
chunkGroupAuxiliary: false,
},
};
?boolean = true
?
顯示 chunk 組的子 chunk。(例如,預置(prefetched),預加載(preloaded)的 chunk 和 asset)。
module.exports = {
//...
stats: {
chunkGroupChildren: false,
},
};
?number
?
chunk 組中的 asset 數(shù)上限。
module.exports = {
//...
stats: {
chunkGroupMaxAssets: 5,
},
};
?boolean = true
?
告知 stats 添加告警。
module.exports = {
//...
stats: {
warnings: false,
},
};
?array = []: string | RegExp | function (warning) => boolean
? ?string
? ?RegExp
? ?function (warning) => boolean
?
告知 stats 排除掉匹配的告警信息。這個可以通過設置一個 字符串, 一個 正則表達式, 一個 函數(shù) 取得資源的名字作為入?yún)⑶曳祷匾粋€ 布爾值。 stats.warningsFilter 可以是一個包括上面任意一類型值的 數(shù)組 。
module.exports = {
//...
stats: {
warningsFilter: ['filter', /filter/, (warning) => true],
},
};
?boolean = false
?
告知 stats 展示 chunk 的父 chunk,孩子 chunk 和兄弟 chunk。
對于 assetsSort, chunksSort 和 modulesSort 它們有幾個可用的字段用于排序:
'id'
? 是元素(指資源,chunk 或模塊,下同)的 id;'name'
? - 一個元素的名字,在導引的時候被分配;'size'
? - 一個元素的大小,單位字節(jié)(bytes);'chunks'
? - 元素來源于哪些 chunks (例如,一個 chunk 有多個子 chunks, - 子 chunks 會被基于主 chunk 組合到一起);'errors'
? - 元素組錯誤的數(shù)量;'warnings'
? - 元素中告警的數(shù)量;'failed'
? - 元素是被編譯失敗;'cacheable'
? - 元素是否被緩存;'built'
? - 資源是否被構建;'prefetched'
? - 資源是否被預拉取;'optional'
? - 資源是否可選;'identifier'
? - 元素的標識符;'index'
? - 元素加工指針;'index2'
?'profile'
?'issuer'
? - 發(fā)起者(issuer)的標識符;'issuerId'
? - 發(fā)起者(issuer)的 id;'issuerName'
? - 發(fā)起者(issuer)的名字;'issuerPath'
? - 一個完整的發(fā)起者(issuer)對象?;谶@個字段排序沒有現(xiàn)實的需要;如果你想使用其中一個預定義的行為,例如 'minimal',但仍想重載一個或更多的規(guī)則:請指定想要設置的 stats.preset 同時在后面添加自定義或額外的規(guī)則。
webpack.config.js
module.exports = {
//..
stats: {
preset: 'minimal',
moduleTrace: true,
errorDetails: true,
},
};
更多建議: