统计

object string

stats 选项让你可以精确控制显示哪些包信息。如果你不想使用 quietnoInfo,因为你想要一些包信息,但不是全部,这会是一个不错的折中方案。

module.exports = {
  //...
  stats: 'errors-only',
};

Stats 预设

Webpack 提供了某些可用于 stats 输出的预设

预设备选方案说明
'仅错误'仅在发生错误时输出
'错误警告'仅输出发生的错误和警告
'最小'仅在发生错误或新编译时输出
'无'false不输出任何内容
'正常'标准输出
'详细'输出所有内容
'详细'输出除chunkModuleschunkRootModules之外的所有内容
'摘要'输出 webpack 版本、警告数和错误数

Stats 选项

可以指定希望在统计信息输出中看到哪些信息。

stats.all

当未定义选项时,stats 选项的备用值。它优先于本地 webpack 默认值。

module.exports = {
  //...
  stats: {
    all: undefined,
  },
};

stats.assets

布尔值 = true

告诉stats是否显示资产信息。将stats.assets设置为false以隐藏它。

module.exports = {
  //...
  stats: {
    assets: false,
  },
};

stats.assetsSort

字符串 = 'id'

告诉stats按给定字段对资产进行排序。所有排序字段都可以用作stats.assetsSort的值。在值中使用!前缀以按给定字段反转排序顺序。

module.exports = {
  //...
  stats: {
    assetsSort: '!size',
  },
};

stats.builtAt

布尔值 = true

告诉stats是否添加构建日期和构建时间信息。将stats.builtAt设置为false以隐藏它。

module.exports = {
  //...
  stats: {
    builtAt: false,
  },
};

stats.moduleAssets

布尔值 = true

告诉stats是否添加有关模块中资产的信息。将stats.moduleAssets设置为false以隐藏它。

module.exports = {
  //...
  stats: {
    moduleAssets: false,
  },
};

stats.assetsSpace

数字 = 15

告诉stats应显示多少个资产项(组将折叠以适应此空间)。

module.exports = {
  //...
  stats: {
    assetsSpace: 15,
  },
};

stats.modulesSpace

数字 = 15

告诉stats应显示多少个模块项(组将折叠以适应此空间)。

module.exports = {
  //...
  stats: {
    modulesSpace: 15,
  },
};

stats.chunkModulesSpace

数字 = 10

告诉stats应显示多少个块模块项(组将折叠以适应此空间)。

module.exports = {
  //...
  stats: {
    chunkModulesSpace: 15,
  },
};

stats.nestedModules

布尔值

告诉 stats 是否添加有关嵌套在其他模块中的模块的信息(例如使用模块连接)。

module.exports = {
  //...
  stats: {
    nestedModules: true,
  },
};

stats.nestedModulesSpace

数字 = 10

告诉 stats 应显示多少个嵌套模块项(组将折叠以适应此空间)。

module.exports = {
  //...
  stats: {
    nestedModulesSpace: 15,
  },
};

stats.cached

stats.cachedModules 的旧版本。

stats.cachedModules

布尔值 = true

告诉 stats 是否添加有关缓存(未构建)模块的信息。

module.exports = {
  //...
  stats: {
    cachedModules: false,
  },
};

stats.runtimeModules

布尔值 = true

告诉 stats 是否添加有关运行时模块的信息。

module.exports = {
  //...
  stats: {
    runtimeModules: false,
  },
};

stats.dependentModules

布尔值

告诉 stats 是否显示块的依赖项块模块。

module.exports = {
  //...
  stats: {
    dependentModules: false,
  },
};

stats.groupAssetsByChunk

布尔值

告诉 stats 是否按资产与块的关系对资产进行分组。

module.exports = {
  //...
  stats: {
    groupAssetsByChunk: false,
  },
};

stats.groupAssetsByEmitStatus

布尔值

告诉 stats 是否按资产的状态(已发出、已比较要发出或已缓存)对资产进行分组。

module.exports = {
  //...
  stats: {
    groupAssetsByEmitStatus: false,
  },
};

stats.groupAssetsByExtension

布尔值

告诉 stats 是否按资产的扩展名对资产进行分组。

module.exports = {
  //...
  stats: {
    groupAssetsByExtension: false,
  },
};

stats.groupAssetsByInfo

布尔值

告诉 stats 是否按资产信息(不可变、开发、热模块替换等)对资产进行分组。

module.exports = {
  //...
  stats: {
    groupAssetsByInfo: false,
  },
};

stats.groupAssetsByPath

布尔值

告诉 stats 是否按资产路径对资产进行分组。

module.exports = {
  //...
  stats: {
    groupAssetsByPath: false,
  },
};

stats.groupModulesByAttributes

布尔值

告诉 stats 是否按模块的属性(错误、警告、资产、可选、孤立或依赖)对模块进行分组。

module.exports = {
  //...
  stats: {
    groupModulesByAttributes: false,
  },
};

stats.groupModulesByCacheStatus

布尔值

告诉 stats 是否按其缓存状态(已缓存或已构建且可缓存)对模块进行分组。

module.exports = {
  //...
  stats: {
    groupModulesByCacheStatus: true,
  },
};

stats.groupModulesByExtension

布尔值

告诉 stats 是否按其扩展名对模块进行分组。

module.exports = {
  //...
  stats: {
    groupModulesByExtension: true,
  },
};

stats.groupModulesByLayer

布尔值

告诉 stats 是否按其图层对模块进行分组。

module.exports = {
  //...
  stats: {
    groupModulesByLayer: true,
  },
};

stats.groupModulesByPath

布尔值

告诉 stats 是否按其路径对模块进行分组。

module.exports = {
  //...
  stats: {
    groupModulesByPath: true,
  },
};

stats.groupModulesByType

布尔值

告诉 stats 是否按其类型对模块进行分组。

module.exports = {
  //...
  stats: {
    groupModulesByType: true,
  },
};

stats.groupReasonsByOrigin

布尔值

5.46.0+

按其源模块对 reasons 进行分组,以避免出现大量原因。

module.exports = {
  //...
  stats: {
    groupReasonsByOrigin: true,
  },
};

stats.cachedAssets

布尔值 = true

告诉 stats 是否添加有关缓存资产的信息。将 stats.cachedAssets 设置为 false 将告诉 stats 仅显示已发出的文件(而不是已构建的文件)。

module.exports = {
  //...
  stats: {
    cachedAssets: false,
  },
};

stats.children

布尔值 = true

告诉 stats 是否添加有关子项的信息。

module.exports = {
  //...
  stats: {
    children: false,
  },
};

stats.chunks

布尔值 = true

告诉 stats 是否添加有关块的信息。将 stats.chunks 设置为 false 会导致输出不那么详细。

module.exports = {
  //...
  stats: {
    chunks: false,
  },
};

stats.chunkGroups

布尔值 = true

告诉 stats 是否添加有关 namedChunkGroups 的信息。

module.exports = {
  //...
  stats: {
    chunkGroups: false,
  },
};

stats.chunkModules

布尔值 = true

告诉 stats 是否将有关已构建模块的信息添加到有关块的信息中。

module.exports = {
  //...
  stats: {
    chunkModules: false,
  },
};

stats.chunkOrigins

布尔值 = true

告诉 stats 是否添加有关块的来源和块合并的信息。

module.exports = {
  //...
  stats: {
    chunkOrigins: false,
  },
};

stats.chunksSort

字符串 = 'id'

告诉 stats 按给定字段对块进行排序。所有 排序字段 都可以作为 stats.chunksSort 的值使用。在值中使用 ! 前缀以按给定字段反转排序顺序。

module.exports = {
  //...
  stats: {
    chunksSort: 'name',
  },
};

stats.context

字符串

统计基础目录,一个绝对路径,用于缩短请求信息。

const path = require('path');

module.exports = {
  //...
  stats: {
    context: path.resolve(__dirname, 'src/components'),
  },
};

默认情况下,使用 context 的值或 Node.js 当前工作目录。

stats.colors

boolean = false object

告诉 stats 是否以不同的颜色输出。

module.exports = {
  //...
  stats: {
    colors: true,
  },
};

它还可以作为 CLI 标志

npx webpack --stats-colors

禁用

npx webpack --no-stats-colors

你可以使用 ANSI 转义序列 指定你自己的终端输出颜色

module.exports = {
  //...
  colors: {
    green: '\u001b[32m',
  },
};

stats.depth

boolean = false

告诉 stats 是否显示每个模块到入口点的距离。

module.exports = {
  //...
  stats: {
    depth: true,
  },
};

stats.entrypoints

boolean = true string = 'auto'

告诉 stats 是否显示带有相应包的入口点。

module.exports = {
  //...
  stats: {
    entrypoints: false,
  },
};

stats.entrypoints 设置为 'auto' 时,webpack 将自动决定是否在统计输出中显示入口点。

stats.env

boolean = false

告诉 stats 是否显示 --env 信息。

module.exports = {
  //...
  stats: {
    env: true,
  },
};

stats.orphanModules

boolean = false

告诉 stats 是否隐藏孤儿模块。如果模块未包含在任何块中,则该模块为孤儿。在 stats 中,孤儿模块默认隐藏。

module.exports = {
  //...
  stats: {
    orphanModules: true,
  },
};

stats.errors

布尔值 = true

告诉 stats 是否显示错误。

module.exports = {
  //...
  stats: {
    errors: false,
  },
};

stats.errorDetails

boolean string = "auto"

告诉 stats 是否将详细信息添加到错误中。它默认为 'auto',当错误少于或等于 2 个时,它将显示错误详细信息。

module.exports = {
  //...
  stats: {
    errorDetails: false,
  },
};

stats.errorStack

布尔值 = true

告诉 stats 是否显示错误的堆栈跟踪。

module.exports = {
  //...
  stats: {
    errorStack: false,
  },
};

stats.errorsSpace

5.80.0+

number

指示 stats 限制分配给显示错误的行数。

module.exports = {
  //...
  stats: {
    errorsSpace: 5,
  },
};

stats.excludeAssets

array = []: string | RegExp | function (assetName) => boolean string RegExp function (assetName) => boolean

指示 stats 排除匹配的资产信息。这可以通过 stringRegExp、一个获取资产名称作为参数并返回 booleanfunction 来完成。stats.excludeAssets 可以是上述任何类型的 array

module.exports = {
  //...
  stats: {
    excludeAssets: [
      'filter',
      /filter/,
      (assetName) => assetName.contains('moduleA'),
    ],
  },
};

stats.excludeModules

array = []: string | RegExp | function (assetName) => boolean string RegExp function (assetName) => boolean boolean: false

指示 stats 排除匹配的模块信息。这可以通过 stringRegExp、一个获取模块源代码作为参数并返回 booleanfunction 来完成。stats.excludeModules 可以是上述任何类型的 arraystats.excludeModules 的配置 已合并stats.exclude 的配置值中。

module.exports = {
  //...
  stats: {
    excludeModules: ['filter', /filter/, (moduleSource) => true],
  },
};

stats.excludeModules 设置为 false 将禁用排除行为。

module.exports = {
  //...
  stats: {
    excludeModules: false,
  },
};

stats.exclude

参见 stats.excludeModules

stats.hash

布尔值 = true

指示 stats 是否添加有关编译哈希的信息。

module.exports = {
  //...
  stats: {
    hash: false,
  },
};

stats.logging

string = 'info': 'none' | 'error' | 'warn' | 'info' | 'log' | 'verbose' boolean

指示 stats 是否添加日志输出。

  • 'none'false - 禁用日志记录
  • 'error' - 仅限错误
  • 'warn' - 仅限错误和警告
  • 'info' - 错误、警告和信息消息
  • 'log'true - 错误、警告、信息消息、日志消息、组、清除。折叠组以折叠状态显示。
  • 'verbose' - 记录除调试和跟踪之外的所有内容。折叠组以展开状态显示。
module.exports = {
  //...
  stats: {
    logging: 'verbose',
  },
};

stats.loggingDebug

array = []: string | RegExp | function (name) => boolean string RegExp function (name) => boolean

指示 stats 包含指定记录器的调试信息,例如插件或加载器。当 stats.logging 设置为 false 时,将忽略 stats.loggingDebug 选项。

module.exports = {
  //...
  stats: {
    loggingDebug: [
      'MyPlugin',
      /MyPlugin/,
      /webpack/, // To get core logging
      (name) => name.contains('MyPlugin'),
    ],
  },
};

stats.loggingTrace

布尔值 = true

为错误、警告和跟踪启用日志输出中的堆栈跟踪。将 stats.loggingTrace 设置为隐藏跟踪。

module.exports = {
  //...
  stats: {
    loggingTrace: false,
  },
};

stats.modules

布尔值 = true

指示 stats 是否添加有关已构建模块的信息。

module.exports = {
  //...
  stats: {
    modules: false,
  },
};

stats.modulesSort

字符串 = 'id'

指示 stats 按给定字段对模块进行排序。所有 排序字段 都可以作为 stats.modulesSort 的值使用。在值中使用 ! 前缀可按给定字段反转排序顺序。

module.exports = {
  //...
  stats: {
    modulesSort: 'size',
  },
};

stats.moduleTrace

布尔值 = true

指示 stats 显示依赖关系以及警告/错误的来源。stats.moduleTrace 自 webpack 2.5.0 起可用。

module.exports = {
  //...
  stats: {
    moduleTrace: false,
  },
};

stats.optimizationBailout

布尔值

指示 stats 显示优化为何对模块放弃的原因。

module.exports = {
  //...
  stats: {
    optimizationBailout: false,
  },
};

stats.outputPath

布尔值 = true

指示 stats 显示 outputPath

module.exports = {
  //...
  stats: {
    outputPath: false,
  },
};

stats.performance

布尔值 = true

当文件大小超过 performance.maxAssetSize 时,指示 stats 显示性能提示。

module.exports = {
  //...
  stats: {
    performance: false,
  },
};

stats.preset

string boolean: false

设置预设,用于获取显示的信息类型。它对于扩展统计行为很有用。

module.exports = {
  //...
  stats: {
    preset: 'minimal',
  },
};

stats.preset 的值设置为 false 告诉 webpack 使用 'none' 统计预设

stats.providedExports

boolean = false

告诉 stats 显示模块的导出。

module.exports = {
  //...
  stats: {
    providedExports: true,
  },
};

stats.errorsCount

布尔值 = true

添加错误计数。

module.exports = {
  //...
  stats: {
    errorsCount: false,
  },
};

stats.warningsCount

布尔值 = true

添加警告计数。

module.exports = {
  //...
  stats: {
    warningsCount: false,
  },
};

stats.publicPath

布尔值 = true

告诉 stats 显示 publicPath

module.exports = {
  //...
  stats: {
    publicPath: false,
  },
};

stats.reasons

布尔值 = true

告诉 stats 添加有关模块包含原因的信息。

module.exports = {
  //...
  stats: {
    reasons: false,
  },
};

stats.reasonsSpace

number

5.46.0+

显示reasons的空间(组将折叠以适应此空间)。

module.exports = {
  //...
  stats: {
    reasonsSpace: 1000,
  },
};

stats.relatedAssets

boolean = false

告诉 stats 是否添加有关与其他资产相关的资产的信息(如资产的 SourceMaps)。

module.exports = {
  //...
  stats: {
    relatedAssets: true,
  },
};

stats.source

boolean = false

告诉 stats 添加模块的源代码。

module.exports = {
  //...
  stats: {
    source: true,
  },
};

stats.timings

布尔值 = true

告诉 stats 添加时间信息。

module.exports = {
  //...
  stats: {
    timings: false,
  },
};

stats.ids

boolean = false

告诉 stats 添加模块和块的 ID。

module.exports = {
  //...
  stats: {
    ids: true,
  },
};

stats.usedExports

boolean = false

告诉 stats 是否显示模块的哪些导出被使用。

module.exports = {
  //...
  stats: {
    usedExports: true,
  },
};

stats.version

布尔值 = true

告知 stats 添加有关所用 webpack 版本的信息。

module.exports = {
  //...
  stats: {
    version: false,
  },
};

stats.chunkGroupAuxiliary

布尔值 = true

在 chunk 组中显示辅助资产。

module.exports = {
  //...
  stats: {
    chunkGroupAuxiliary: false,
  },
};

stats.chunkGroupChildren

布尔值 = true

显示 chunk 组的子项(例如,预取、预加载的 chunk 和资产)。

module.exports = {
  //...
  stats: {
    chunkGroupChildren: false,
  },
};

stats.chunkGroupMaxAssets

number

在 chunk 组中显示的资产限制。

module.exports = {
  //...
  stats: {
    chunkGroupMaxAssets: 5,
  },
};

stats.warnings

布尔值 = true

告知 stats 添加警告。

module.exports = {
  //...
  stats: {
    warnings: false,
  },
};

stats.warningsSpace

5.80.0+

number

告知 stats 限制用于显示警告的行数。

module.exports = {
  //...
  stats: {
    warningsSpace: 5,
  },
};

stats.warningsFilter

array = []: string | RegExp | function (warning) => boolean string RegExp function (warning) => boolean

告知 stats 排除与给定过滤器匹配的警告。这可以通过 stringRegExp、一个获取警告作为参数并返回 booleanfunction 来完成。stats.warningsFilter 可以是上述任何内容的 array

module.exports = {
  //...
  stats: {
    warningsFilter: ['filter', /filter/, (warning) => true],
  },
};

stats.chunkRelations

boolean = false

告知 stats 显示 chunk 的父项、子项和同级项。

排序字段

对于 assetsSortchunksSortmodulesSort,有几个可能的字段可以用来对项目进行排序

  • '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' - 完整的发行者对象。无需按此字段排序。

扩展统计行为

如果您想使用其中一个预设,例如 'minimal',但仍想覆盖一些规则:请指定所需的 stats.preset,然后添加自定义或附加规则。

webpack.config.js

module.exports = {
  //..
  stats: {
    preset: 'minimal',
    moduleTrace: true,
    errorDetails: true,
  },
};

15 位贡献者

SpaceK33zsallarjungomildrickjasonblanchardbyzykrenjithspaceRaiondesuEugeneHlushkogrguranshumanvpixel-raysnitin315u01jmg3