Stats 配置
Stats 配置
object string
stats 选项可以让你精确控制要显示的 bundle 信息。如果你不想使用 quiet 或 noInfo(因为你想要一些 bundle 信息,但不需要全部信息),这是一个很好的折中方案。
W> 使用 Node.js API 时,此选项不生效。你需要将 stats 选项传递给 stats.toString() 或 stats.toJson() 调用。
js
export default {
// ...
stats: "errors-only",
};
Stats 预设
webpack 提供了一些可用的 stats 输出预设:
| 预设 | 替代值 | 描述 |
|---|---|---|
'errors-only' |
无 | 仅在发生错误时输出 |
'errors-warnings' |
无 | 仅在发生错误和警告时输出 |
'minimal' |
无 | 仅在发生错误或新的编译时输出 |
'none' |
false |
不输出任何内容 |
'normal' |
true |
标准输出 |
'verbose' |
无 | 输出所有内容 |
'detailed' |
无 | 输出除 chunkModules 和 chunkRootModules 外的所有内容 |
'summary' |
无 | 输出 webpack 版本、警告数量和错误数量 |
Stats 选项
你可以指定要在 stats 输出中查看的信息。
T> stats 配置对象中的所有选项都是可选的。
stats.all
当某个选项未定义时,作为 stats 选项的回退值。它优先于本地 webpack 默认值。
js
export default {
// ...
stats: {
all: undefined,
},
};
stats.assets
boolean = true
告诉 stats 是否显示资源信息。将 stats.assets 设置为 false 以隐藏它。
js
export default {
// ...
stats: {
assets: false,
},
};
stats.assetsSort
string = 'id'
告诉 stats 按给定字段对资源进行排序。所有排序字段都可以用作 stats.assetsSort 的值。在值中使用 ! 前缀可按给定字段反转排序顺序。
js
export default {
// ...
stats: {
assetsSort: "!size",
},
};
stats.assetsSpace
number = 15
告诉 stats 应显示多少项资源(分组将被折叠以适应此空间)。
js
export default {
// ...
stats: {
assetsSpace: 15,
},
};
stats.builtAt
boolean = true
告诉 stats 是否添加构建日期和构建时间信息。将 stats.builtAt 设置为 false 以隐藏它。
js
export default {
// ...
stats: {
builtAt: false,
},
};
stats.cached
stats.cachedModules 的旧版本。
stats.cachedAssets
boolean = true
告诉 stats 是否添加关于缓存资源的信息。将 stats.cachedAssets 设置为 false 将告诉 stats 只显示已输出的文件(而非已构建的文件)。
js
export default {
// ...
stats: {
cachedAssets: false,
},
};
stats.cachedModules
boolean = true
告诉 stats 是否添加关于缓存(未构建)模块的信息。
js
export default {
// ...
stats: {
cachedModules: false,
},
};
stats.children
boolean = true
告诉 stats 是否添加关于子编译的信息。
js
export default {
// ...
stats: {
children: false,
},
};
stats.chunkGroupAuxiliary
boolean = true
显示 chunk 组中的辅助资源。
js
export default {
// ...
stats: {
chunkGroupAuxiliary: false,
},
};
stats.chunkGroupChildren
boolean = true
显示 chunk 组的子项(例如预获取、预加载的 chunk 和资源)。
js
export default {
// ...
stats: {
chunkGroupChildren: false,
},
};
stats.chunkGroupMaxAssets
number
chunk 组中显示的资源数量限制。
js
export default {
// ...
stats: {
chunkGroupMaxAssets: 5,
},
};
stats.chunkGroups
boolean = true
告诉 stats 是否添加关于 namedChunkGroups 的信息。
js
export default {
// ...
stats: {
chunkGroups: false,
},
};
stats.chunkModules
boolean = true
告诉 stats 是否在 chunk 信息中添加关于已构建模块的信息。
js
export default {
// ...
stats: {
chunkModules: false,
},
};
stats.chunkModulesSpace
number = 10
告诉 stats 应显示多少项 chunk 模块(分组将被折叠以适应此空间)。
js
export default {
// ...
stats: {
chunkModulesSpace: 15,
},
};
stats.chunkOrigins
boolean = true
告诉 stats 是否添加关于 chunk 来源和 chunk 合并的信息。
js
export default {
// ...
stats: {
chunkOrigins: false,
},
};
stats.chunkRelations
boolean = false
告诉 stats 显示 chunk 的父级、子级和兄弟级。
js
export default {
// ...
stats: {
chunkRelations: false,
},
};
stats.chunks
boolean = true
告诉 stats 是否添加关于 chunk 的信息。将 stats.chunks 设置为 false 将减少输出内容。
js
export default {
// ...
stats: {
chunks: false,
},
};
stats.chunksSort
string = 'id'
告诉 stats 按给定字段对 chunk 进行排序。所有排序字段都可以用作 stats.chunksSort 的值。在值中使用 ! 前缀可按给定字段反转排序顺序。
js
export default {
// ...
stats: {
chunksSort: "name",
},
};
stats.colors
boolean = false { bold?: string, cyan?: string, green?: string, magenta?: string, red?: string, yellow?: string }
告诉 stats 是否以不同颜色输出。
js
export default {
// ...
stats: {
colors: true,
},
};
它也可以作为 CLI 标志使用:
bash
npx webpack --stats-colors
要禁用它:
bash
npx webpack --no-stats-colors
你可以使用 ANSI 转义序列 指定自己的终端输出颜色。
js
export default {
// ...
colors: {
green: "\u001B[32m",
},
};
stats.context
string
stats 的基础目录,一个用于缩短请求信息的绝对路径。
js
import path from "node:path";
import { fileURLToPath } from "node:url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
export default {
// ...
stats: {
context: path.resolve(__dirname, "src/components"),
},
};
默认情况下,使用 context 的值或 Node.js 当前工作目录。
stats.dependentModules
boolean
告诉 stats 是否显示属于 chunk 中其他模块依赖项的 chunk 模块。
js
export default {
// ...
stats: {
dependentModules: false,
},
};
stats.depth
boolean = false
告诉 stats 是否显示每个模块到入口点的距离。
js
export default {
// ...
stats: {
depth: true,
},
};
stats.entrypoints
boolean = true "auto"
告诉 stats 是否显示入口点及其对应的 bundle。
js
export default {
// ...
stats: {
entrypoints: false,
},
};
当 stats.entrypoints 设置为 'auto' 时,webpack 将自动决定是否在 stats 输出中显示入口点。
stats.env
boolean = false
告诉 stats 是否显示 --env 信息。
js
export default {
// ...
stats: {
env: true,
},
};
stats.errorCause
boolean "auto"
告诉 stats 是否在输出中包含错误的 cause 属性。默认为 true。
js
export default {
// ...
stats: {
errorCause: true,
},
};
stats.errorDetails
boolean "auto"
告诉 stats 是否在错误中添加详细信息。默认为 'auto',即当错误不超过 2 个时显示错误详细信息。
js
export default {
// ...
stats: {
errorDetails: false,
},
};
stats.errorErrors
boolean "auto"
告诉 stats 是否在输出中包含 AggregateError 实例中的 errors 数组。默认为 true。
当单个错误由多个底层错误组成时,此选项非常有用,可以提供对分组错误结构的更深入可见性。
js
export default {
// ...
stats: {
errorErrors: true,
},
};
stats.errorStack
boolean = true
告诉 stats 是否显示错误的堆栈跟踪。
js
export default {
// ...
stats: {
errorStack: false,
},
};
stats.errors
boolean = true
告诉 stats 是否显示错误。
js
export default {
// ...
stats: {
errors: false,
},
};
stats.errorsCount
boolean = true
添加错误数量。
js
export default {
// ...
stats: {
errorsCount: false,
},
};
stats.errorsSpace
number
告诉 stats 限制用于显示单个错误所分配的行数。
js
export default {
// ...
stats: {
errorsSpace: 5,
},
};
stats.exclude
stats.excludeAssets
array = []: string | RegExp | function (assetName) => boolean string RegExp function (assetName) => boolean
告诉 stats 排除匹配的资源信息。可以使用 string、RegExp 或 function(以资源名称作为参数并返回 boolean)来实现。stats.excludeAssets 可以是上述任意类型的 array。
js
export default {
// ...
stats: {
excludeAssets: [
"filter",
/filter/,
(assetName) => assetName.contains("moduleA"),
],
},
};
stats.excludeModules
array = []: string | RegExp | function (assetName) => boolean string RegExp function (assetName) => boolean boolean: false
告诉 stats 排除匹配的模块信息。可以使用 string、RegExp 或 function(以模块的源代码作为参数并返回 boolean)来实现。stats.excludeModules 可以是上述任意类型的 array。stats.excludeModules 的配置会与 stats.exclude 的配置值合并。
js
export default {
// ...
stats: {
excludeModules: ["filter", /filter/, (moduleSource) => true],
},
};
将 stats.excludeModules 设置为 false 将禁用排除行为。
js
export default {
// ...
stats: {
excludeModules: false,
},
};
stats.groupAssetsByChunk
boolean
告诉 stats 是否按资源与 chunk 的关联方式进行分组。
js
export default {
// ...
stats: {
groupAssetsByChunk: false,
},
};
stats.groupAssetsByEmitStatus
boolean
告诉 stats 是否按资源的状态(已输出、为输出而比较或已缓存)进行分组。
js
export default {
// ...
stats: {
groupAssetsByEmitStatus: false,
},
};
stats.groupAssetsByExtension
boolean
告诉 stats 是否按资源的扩展名进行分组。
js
export default {
// ...
stats: {
groupAssetsByExtension: false,
},
};
stats.groupAssetsByInfo
boolean
告诉 stats 是否按资源的资源信息(immutable、development、hotModuleReplacement 等)进行分组。
js
export default {
// ...
stats: {
groupAssetsByInfo: false,
},
};
stats.groupAssetsByPath
boolean
告诉 stats 是否按资源的资源路径进行分组。
js
export default {
// ...
stats: {
groupAssetsByPath: false,
},
};
stats.groupModulesByAttributes
boolean
告诉 stats 是否按模块的属性(errors、warnings、assets、optional、orphan 或 dependent)进行分组。
js
export default {
// ...
stats: {
groupModulesByAttributes: false,
},
};
stats.groupModulesByCacheStatus
boolean
告诉 stats 是否按模块的缓存状态(已缓存或已构建且可缓存)进行分组。
js
export default {
// ...
stats: {
groupModulesByCacheStatus: true,
},
};
stats.groupModulesByExtension
boolean
告诉 stats 是否按模块的扩展名进行分组。
js
export default {
// ...
stats: {
groupModulesByExtension: true,
},
};
stats.groupModulesByLayer
boolean
告诉 stats 是否按模块的层进行分组。
js
export default {
// ...
stats: {
groupModulesByLayer: true,
},
};
stats.groupModulesByPath
boolean
告诉 stats 是否按模块的路径进行分组。
js
export default {
// ...
stats: {
groupModulesByPath: true,
},
};
stats.groupModulesByType
boolean
告诉 stats 是否按模块的类型进行分组。
js
export default {
// ...
stats: {
groupModulesByType: true,
},
};
stats.groupReasonsByOrigin
boolean
按来源模块对 reasons 进行分组,以避免大量的 reasons。
js
export default {
// ...
stats: {
groupReasonsByOrigin: true,
},
};
stats.hash
boolean = true
告诉 stats 是否添加关于编译 hash 的信息。
js
export default {
// ...
stats: {
hash: false,
},
};
stats.ids
boolean = false
告诉 stats 添加模块和 chunk 的 ID。
js
export default {
// ...
stats: {
ids: true,
},
};
stats.logging
string = 'info': 'none' | 'error' | 'warn' | 'info' | 'log' | 'verbose' boolean
告诉 stats 是否添加日志输出。
'none'、false- 禁用日志'error'- 仅错误'warn'- 仅错误和警告'info'- 错误、警告和信息消息'log'、true- 错误、警告、信息消息、日志消息、分组、清除。折叠的分组以折叠状态显示。'verbose'- 记录除 debug 和 trace 之外的所有内容。折叠的分组以展开状态显示。
js
export default {
// ...
stats: {
logging: "verbose",
},
};
stats.loggingDebug
array = []: string | RegExp | function (name) => boolean string RegExp function (name) => boolean
告诉 stats 包含指定记录器(如插件或加载器)的调试信息。当 stats.logging 设置为 false 时,stats.loggingDebug 选项将被忽略。
js
export default {
// ...
stats: {
loggingDebug: [
"MyPlugin",
/MyPlugin/,
/webpack/, // 获取核心日志
(name) => name.contains("MyPlugin"),
],
},
};
stats.loggingTrace
boolean = true
在日志输出中为错误、警告和跟踪启用堆栈跟踪。设置 stats.loggingTrace 以隐藏跟踪。
js
export default {
// ...
stats: {
loggingTrace: false,
},
};
stats.moduleAssets
boolean = true
告诉 stats 是否添加模块内部资源的信息。将 stats.moduleAssets 设置为 false 以隐藏它。
js
export default {
// ...
stats: {
moduleAssets: false,
},
};
stats.moduleTrace
boolean = true
告诉 stats 显示依赖关系以及警告/错误的来源。stats.moduleTrace 自 webpack 2.5.0 起可用。
js
export default {
// ...
stats: {
moduleTrace: false,
},
};
stats.modules
boolean = true
告诉 stats 是否添加关于已构建模块的信息。
js
export default {
// ...
stats: {
modules: false,
},
};
stats.modulesSort
string = 'id'
告诉 stats 按给定字段对模块进行排序。所有排序字段都可以用作 stats.modulesSort 的值。在值中使用 ! 前缀可按给定字段反转排序顺序。
js
export default {
// ...
stats: {
modulesSort: "size",
},
};
stats.modulesSpace
number = 15
告诉 stats 应显示多少项模块(分组将被折叠以适应此空间)。
js
export default {
// ...
stats: {
modulesSpace: 15,
},
};
stats.nestedModules
boolean
告诉 stats 是否添加关于嵌套在其他模块中的模块的信息(例如模块拼接)。
js
export default {
// ...
stats: {
nestedModules: true,
},
};
stats.nestedModulesSpace
number = 10
告诉 stats 应显示多少项嵌套模块(分组将被折叠以适应此空间)。
js
export default {
// ...
stats: {
nestedModulesSpace: 15,
},
};
stats.optimizationBailout
boolean
告诉 stats 显示模块的优化失败原因。
js
export default {
// ...
stats: {
optimizationBailout: false,
},
};
stats.orphanModules
boolean = false
告诉 stats 是否隐藏 orphan 模块。如果模块未包含在任何 chunk 中,则它是 orphan 模块。默认情况下,stats 会隐藏 orphan 模块。
js
export default {
// ...
stats: {
orphanModules: true,
},
};
stats.outputPath
boolean = true
告诉 stats 显示 outputPath。
js
export default {
// ...
stats: {
outputPath: false,
},
};
stats.performance
boolean = true
告诉 stats 在文件大小超过 performance.maxAssetSize 时显示性能提示。
js
export default {
// ...
stats: {
performance: false,
},
};
stats.preset
string boolean: false
设置所显示信息类型的预设。它对于扩展 stats 行为非常有用。
js
export default {
// ...
stats: {
preset: "minimal",
},
};
将 stats.preset 的值设置为 false 会告诉 webpack 使用 'none' stats 预设。
stats.providedExports
boolean = false
告诉 stats 显示模块的导出。
js
export default {
// ...
stats: {
providedExports: true,
},
};
stats.publicPath
boolean = true
告诉 stats 显示 publicPath。
js
export default {
// ...
stats: {
publicPath: false,
},
};
stats.reasons
boolean = true
告诉 stats 添加关于模块为何被包含的原因信息。
js
export default {
// ...
stats: {
reasons: false,
},
};
stats.reasonsSpace
number
显示 reasons 的空间(分组将被折叠以适应此空间)。
js
export default {
// ...
stats: {
reasonsSpace: 1000,
},
};
T> detailed 预设 默认将 modulesSpace、assetsSpace 和 reasonsSpace 限制为 1000。
stats.relatedAssets
boolean = false
告诉 stats 是否添加关于与其他资源相关的资源的信息(如资源的 SourceMap)。
js
export default {
// ...
stats: {
relatedAssets: true,
},
};
stats.runtimeModules
boolean = true
告诉 stats 是否添加关于运行时模块的信息。
js
export default {
// ...
stats: {
runtimeModules: false,
},
};
stats.source
boolean = false
告诉 stats 添加模块的源代码。
js
export default {
// ...
stats: {
source: true,
},
};
stats.timings
boolean = true
告诉 stats 添加时间信息。
js
export default {
// ...
stats: {
timings: false,
},
};
stats.usedExports
boolean = false
告诉 stats 是否显示模块的哪些导出被使用。
js
export default {
// ...
stats: {
usedExports: true,
},
};
stats.version
boolean = true
告诉 stats 添加关于所用 webpack 版本的信息。
js
export default {
// ...
stats: {
version: false,
},
};
stats.warnings
boolean = true
告诉 stats 添加警告。
js
export default {
// ...
stats: {
warnings: false,
},
};
stats.warningsCount
boolean = true
添加警告数量。
js
export default {
// ...
stats: {
warningsCount: false,
},
};
stats.warningsFilter
array = []: string | RegExp | function (warning) => boolean string RegExp function (warning) => boolean
告诉 stats 排除匹配给定过滤器的警告。可以使用 string、RegExp 或 function(以警告作为参数并返回 boolean)来实现。stats.warningsFilter 可以是上述任意类型的 array。
js
export default {
// ...
stats: {
warningsFilter: ["filter", /filter/, (warning) => true],
},
};
W> stats.warningsFilter 已弃用,推荐使用 ignoreWarnings。
stats.warningsSpace
number
告诉 stats 限制用于显示单个警告所分配的行数。
js
export default {
// ...
stats: {
warningsSpace: 5,
},
};
排序字段
对于 assetsSort、chunksSort 和 modulesSort,有几个可用的字段可以对项目进行排序:
'id'- 项目的 ID,'name'- 项目在导入时被分配的名称,'size'- 项目的大小(以字节为单位),'chunks'- 项目来自哪些 chunk(例如,如果一个 chunk 有多个子 chunk:子 chunk 将根据它们的主 chunk 进行分组),'errors'- 项目中的错误数量,'warnings'- 项目中的警告数量,'failed'- 项目是否编译失败,'cacheable'- 项目是否可缓存,'built'- 资源是否已构建,'prefetched'- 资源是否将被预取,'optional'- 资源是否可选。'identifier'- 项目的标识符。'index'- 项目的处理索引。'index2''profile''issuer'- 来源方的标识符。'issuerId'- 来源方的 ID。'issuerName'- 来源方的名称。'issuerPath'- 完整的来源方对象。实际不需要按此字段排序。
扩展 stats 行为
如果你想使用某个预设(例如 'minimal')但仍覆盖某些规则:指定所需的 stats.preset,然后添加自定义或额外的规则。
webpack.config.js
js
export default {
// ..
stats: {
preset: "minimal",
moduleTrace: true,
errorDetails: true,
},
};
帮助我们改进文档
发现翻译问题或内容错误?请告诉我们。
