Spec-Zone.ru › webpack 5

Статистика

object string

Опция stats позволяет точно контролировать, какая информация о пакете отображается. Это может быть хорошим компромиссом, если вы не хотите использовать quiet или noInfo, потому что вам нужна некоторая информация о пакете, но не вся.

Предупреждение

Эта опция не имеет никакого эффекта при использовании API Node.js. Вам необходимо передать опции stats в вызовы stats.toString() и stats.toJson() соответственно.

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

Наборы настроек вывода статистики

Webpack поставляется с определёнными наборами настроек для вывода статистики:

Набор настроек Альтернатива Описание
'errors-only' нет Вывод только при возникновении ошибок
'errors-warnings' нет Вывод только ошибок и предупреждений
'minimal' нет Вывод только при возникновении ошибок или новой компиляции
'none' false Не выводить ничего
'normal' true Стандартный вывод
'verbose' нет Выводить всё
'detailed' нет Выводить всё, кроме chunkModules и chunkRootModules
'summary' нет Выводить версию webpack, количество предупреждений и ошибок

Опции вывода статистики

Можно указать, какую информацию вы хотите увидеть в выводе статистики.

Подсказка

Все опции в объекте конфигурации stats являются необязательными.

stats.all

Значение по умолчанию для опций stats, когда опция не определена. Имеет приоритет над локальными значениями webpack по умолчанию.

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

stats.assets

boolean = true

Указывает stats нужно ли показывать информацию об активах. Установите stats.assets в false, чтобы скрыть её.

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

stats.assetsSort

string = 'id'

Указывает stats сортировать активы по заданному полю. Все поля сортировки полей сортировки могут быть использованы в качестве значений для stats.assetsSort. Используйте префикс ! в значении, чтобы перевернуть порядок сортировки по заданному полю.

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

stats.assetsSpace

number = 15

Указывает stats сколько элементов активов нужно отобразить (группы будут свернуты, чтобы поместиться в это пространство).

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

stats.builtAt

boolean = true

Указывает stats нужно ли добавлять дату и время сборки. Установите stats.builtAt в false, чтобы скрыть её.

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

stats.cached

Старая версия stats.cachedModules.

stats.cachedAssets

boolean = true

Указывает stats нужно ли добавлять информацию о кэшированных активах. Установка stats.cachedAssets в false укажет stats отображать только сгенерированные файлы (а не те, которые были построены).

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

stats.cachedModules

boolean = true

Указывает stats нужно ли добавлять информацию о кэшированных (не построенных) модулях.

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

stats.children

boolean = true

Указывает stats нужно ли добавлять информацию о дочерних элементах.

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

stats.chunkGroupAuxiliary

boolean = true

Отображать вспомогательные активы в группах ссылок.

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

stats.chunkGroupChildren

boolean = true

Отображать дочерние элементы групп ссылок (например, предварительно загруженные, предварительно загруженные ссылки и активы).

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

stats.chunkGroupMaxAssets

number

Предельное количество активов, отображаемых в группах ссылок.

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

stats.chunkGroups

boolean = true

Указывает stats нужно ли добавлять информацию о namedChunkGroups.

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

stats.chunkModules

boolean = true

Указывает stats нужно ли добавлять информацию о построенных модулях к информации о ссылке.

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

stats.chunkModulesSpace

number = 10

Указывает stats сколько элементов модулей ссылок нужно отобразить (группы будут свернуты, чтобы поместиться в это пространство).

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

stats.chunkOrigins

boolean = true

Указывает stats нужно ли добавлять информацию об источниках ссылок и объединении ссылок.

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

stats.chunkRelations

boolean = false

Указывает stats отображать родительские, дочерние и родственные ссылки.

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

stats.chunks

boolean = true

Указывает stats нужно ли добавлять информацию о ссылках. Установка stats.chunks в false приводит к менее подробному выводу.

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

stats.chunksSort

string = 'id'

Указывает stats сортировать ссылки по заданному полю. Все поля сортировки полей сортировки могут быть использованы в качестве значений для stats.chunksSort. Используйте префикс ! в значении, чтобы перевернуть порядок сортировки по заданному полю.

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

stats.colors

boolean = false { bold?: string, cyan?: string, green?: string, magenta?: string, red?: string, yellow?: string }

Указывает stats нужно ли выводить информацию в различных цветах.

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

Он также доступен в качестве флага командной строки:

npx webpack --stats-colors

Чтобы отключить:

npx webpack --no-stats-colors

Вы можете указать собственные цвета вывода терминала, используя последовательности ANSI

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

stats.context

string

Базовая директория статистики, абсолютный путь для сокращения информации о запросе.

const path = require('path');

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

По умолчанию используется значение context или текущая рабочая директория Node.js.

stats.dependentModules

boolean

Указывает stats нужно ли показывать модули ссылок, которые являются зависимостями от других модулей ссылки.

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

stats.depth

boolean = false

Указывает stats нужно ли отображать расстояние от точки входа для каждого модуля.

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

stats.entrypoints

boolean = true "auto"

Указывает stats нужно ли отображать точки входа с соответствующими пакетами.

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

Когда stats.entrypoints установлено в 'auto', webpack автоматически определит, нужно ли отображать точки входа в выводе статистики.

stats.env

boolean = false

Указывает stats нужно ли отображать информацию --env.

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

stats.errorDetails

boolean "auto"

Указывает stats нужно ли добавлять детали к ошибкам. По умолчанию 'auto', что означает отображение деталей ошибок, когда есть 2 или меньше ошибок.

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

stats.errorStack

boolean = true

Указывает stats нужно ли отображать трассировку стека ошибок.

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

stats.errors

boolean = true

Указывает stats нужно ли отображать ошибки.

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

stats.errorsCount

boolean = true

Добавить количество ошибок.

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

stats.errorsSpace

5.80.0+

number

Указывает stats ограничить количество строк для отображения ошибки.

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

stats.exclude

См. stats.excludeModules.

stats.excludeAssets

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

Указывает stats исключить информацию о соответствующих активах. Это можно сделать с помощью string, RegExp, function, получающего имя актива в качестве аргумента и возвращающего boolean. 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 исключить информацию о соответствующих модулях. Это можно сделать с помощью string, RegExp, function, получающего исходный код модуля в качестве аргумента и возвращающего boolean. stats.excludeModules может быть array из вышеперечисленного. Конфигурация stats.excludeModules сливается с значением конфигурации stats.exclude.

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

Установка stats.excludeModules в false отключит поведение исключения.

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

stats.groupAssetsByChunk

boolean

Указывает stats нужно ли группировать активы по их связи с ссылками.

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

stats.groupAssetsByEmitStatus

boolean

Указывает stats нужно ли группировать активы по их статусу (выпущенные, сравниваемые для выпуска или кэшированные).

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

stats.groupAssetsByExtension

boolean

Указывает stats нужно ли группировать активы по их расширениям.

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

stats.groupAssetsByInfo

boolean

Указывает stats нужно ли группировать активы по их информации (неизменяемые, разработка, hotModuleReplacement и т. д.).

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

stats.groupAssetsByPath

boolean

Указывает stats нужно ли группировать активы по их пути.

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

stats.groupModulesByAttributes

boolean

Указывает stats нужно ли группировать модули по их атрибутам (ошибки, предупреждения, активы, необязательные, сироты или зависимости).

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

stats.groupModulesByCacheStatus

boolean

Указывает stats нужно ли группировать модули по их статусу кэша (кэшированный или построенный и кэшируемый).

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

stats.groupModulesByExtension

boolean

Указывает stats нужно ли группировать модули по их расширениям.

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

stats.groupModulesByLayer

boolean

Указывает, нужно ли группировать модули по слою.

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

stats.groupModulesByPath

boolean

Указывает, нужно ли группировать модули по пути.

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

stats.groupModulesByType

boolean

Указывает, нужно ли группировать модули по типу.

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

stats.groupReasonsByOrigin

boolean

5.46.0+

Группировать reasons по модулю-источнику, чтобы избежать большого набора причин.

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

stats.hash

boolean = true

Указывает, нужно ли добавлять информацию о хэше компиляции.

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

stats.ids

boolean = false

Указывает, нужно ли добавлять идентификаторы модулей и фрагментов.

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

stats.logging

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

Указывает, нужно ли добавлять вывод логов.

  • '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.logging установлено в false, опция stats.loggingDebug игнорируется.

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

stats.loggingTrace

boolean = true

Включить трассировку стека в выводе логов для ошибок, предупреждений и трассировки. Установите stats.loggingTrace для скрытия трассировки.

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

stats.moduleAssets

boolean = true

Указывает, нужно ли добавлять информацию об активах внутри модулей. Установите stats.moduleAssets в false для скрытия.

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

stats.moduleTrace

boolean = true

Указывает, нужно ли отображать зависимости и происхождение предупреждений/ошибок. stats.moduleTrace доступен начиная с webpack 2.5.0.

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

stats.modules

boolean = true

Указывает, нужно ли добавлять информацию о построенных модулях.

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

stats.modulesSort

string = 'id'

Указывает, нужно ли сортировать модули по заданному полю. Все поля сортировки разрешено использовать в качестве значений для stats.modulesSort. Используйте префикс ! в значении, чтобы изменить порядок сортировки по заданному полю.

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

stats.modulesSpace

number = 15

Указывает, сколько элементов модулей должно быть отображено (группы будут сворачиваться для соответствия этому пространству).

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

stats.nestedModules

boolean

Указывает, нужно ли добавлять информацию о модулях, вложенных в другие модули (например, при конкатенации модулей).

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

stats.nestedModulesSpace

number = 10

Указывает, сколько элементов вложенных модулей должно быть отображено (группы будут сворачиваться для соответствия этому пространству).

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

stats.optimizationBailout

boolean

Указывает, нужно ли отображать причины, по которым оптимизация была прервана для модулей.

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

stats.orphanModules

boolean = false

Указывает, нужно ли скрывать orphan модули. Модуль является orphan, если он не включен ни в один фрагмент. Модули-сироты по умолчанию скрыты в stats.

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

stats.outputPath

boolean = true

Указывает, нужно ли отображать outputPath.

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

stats.performance

boolean = true

Указывает, нужно ли отображать подсказку производительности, когда размер файла превышает performance.maxAssetSize.

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

stats.preset

string boolean: false

Устанавливает предустановку для типа информации, которая отображается. Это полезно для расширения поведения статистики.

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

Установка значения stats.preset в false указывает webpack на использование 'none' предустановки статистики.

stats.providedExports

boolean = false

Указывает, нужно ли отображать экспорты модулей.

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

stats.publicPath

boolean = true

Указывает, нужно ли отображать publicPath.

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

stats.reasons

boolean = true

Указывает, нужно ли добавлять информацию о причинах включения модулей.

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

stats.reasonsSpace

number

5.46.0+

Пространство для отображения reasons (группы будут свернуты для соответствия этому пространству).

module.exports = {
  //...
  stats: {
    reasonsSpace: 1000,
  },
};
подсказка

Предустановки detailed preset по умолчанию ограничивают modulesSpace, assetsSpace и reasonsSpace значением 1000.

stats.relatedAssets

boolean = false

Указывает, нужно ли добавлять информацию об активах, связанных с другими активами (например, SourceMaps для активов).

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

stats.runtimeModules

boolean = true

Указывает, нужно ли добавлять информацию о модулях выполнения.

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

stats.source

boolean = false

Указывает, нужно ли добавлять исходный код модулей.

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

stats.timings

boolean = true

Указывает, нужно ли добавлять информацию о времени.

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

stats.usedExports

boolean = false

Указывает, нужно ли отображать, какие экспорты модуля используются.

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

stats.version

boolean = true

Указывает, нужно ли добавлять информацию о версии webpack.

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

stats.warnings

boolean = true

Указывает, нужно ли добавлять предупреждения.

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

stats.warningsCount

boolean = true

Добавить количество предупреждений.

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

stats.warningsFilter

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

Указывает, нужно ли исключать предупреждения, соответствующие заданным фильтрам. Это можно сделать с помощью string, RegExp, или function, принимающей предупреждение в качестве аргумента и возвращающей boolean. stats.warningsFilter может быть любым из вышеперечисленных.

module.exports = {
  //...
  stats: {
    warningsFilter: ['filter', /filter/, (warning) => true],
  },
};
предупреждение

stats.warningsFilter устарело и его рекомендуется заменить на ignoreWarnings.

stats.warningsSpace

5.80.0+

number

Указывает, нужно ли ограничить количество строк, выделяемых для отображения предупреждения.

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

Поля сортировки

Для assetsSort, chunksSort, и modulesSort существует несколько возможных полей, по которым можно сортировать элементы:

  • 'id' - идентификатор элемента,
  • 'name' - имя элемента, присвоенное при импорте,
  • 'size' - размер элемента в байтах,
  • 'chunks' - фрагменты, из которых происходит элемент (например, если есть несколько подфрагментов для одного фрагмента: подфрагменты будут сгруппированы по основному фрагменту),
  • '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,
  },
};

© JS Foundation and other contributors
Licensed under the Creative Commons Attribution License 4.0.
https://webpack.js.org/configuration/stats

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API