Webpack: вывод тишины


90

Я хотел бы знать, есть ли опция конфигурации, чтобы указать webpack, чтобы он регистрировал только «важную информацию» в терминале. В основном просто ошибки и предупреждения, а не все это:

вывод терминала с webpack

Так много продукции! Хотелось бы подавить обычные вещи, и только webpack выводит предупреждения / ошибки. Хотел решение для webpack, webpack-dev-serverи karma-webpack.

Примечание : Я попробовал noInfo: trueи , quiet: trueно это , похоже, не сделать трюк.


Изменить: я думаю, что это может быть невозможно, поэтому я создал проблему на github: https://github.com/webpack/webpack/issues/1191


Похоже, что в командной строке этот noInfoпараметр на самом деле является обратным --info, что по умолчанию, trueпоэтому, если вы запустите, webpack-dev-server --info falseон должен приблизить вас к тому месту , где вы хотите быть.
naartjie

1
Похоже, это подходит для webpack-dev-server ... Если бы я только мог получить это для своих тестов :-)
kentcdodds

1
Если кому-то интересно, вот что я выполняю сейчас:NODE_ENV=development webpack-dev-server --content-base app/ --port 8888 --colors --progress --info false
kentcdodds

1
Это тоже работает:NODE_ENV=development webpack-dev-server --content-base app/ --port 8888 --colors --progress --no-info
kentcdodds

Ах, --no-infoхорошо знать, спасибо
naartjie

Ответы:


57

В моей конфигурации webpack это уменьшило время инкрементальной сборки на 8 секунд и отключило вывод. Главный из нихchunks: false

Играйте с ним в соответствии со своими потребностями

module.exports = {
 devServer: {
  stats: {
    colors: true,
    hash: false,
    version: false,
    timings: false,
    assets: false,
    chunks: false,
    modules: false,
    reasons: false,
    children: false,
    source: false,
    errors: false,
    errorDetails: false,
    warnings: false,
    publicPath: false
  }
 }
}

4
Работает отлично! Ключевыми из них являются hash, version, timings, assets, chunks.
Нил Эхардт

44

👋 Тебе все это не нужно. Все, что вам нужно, это

На самом деле, эти двое отлично работают.

stats: 'errors-only',

в конце экспортируемого объекта.

Его также можно было использовать stats: 'minimal',только при возникновении ошибок или новой компиляции. Подробнее читайте в официальной документации Webpack.


31

Я не знаю, когда была добавлена ​​эта функция, но я только что заметил в документации, что вы можете добавить webpackMiddlewareсвойство и указать это noInfo: true. Это устранит весь шум! Но вы все равно видите результат, когда есть ошибки. Ура!


11

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

Откуда webpack --help:

--display: Select display preset
[string] [choices: "", "verbose", "detailed", "normal", "minimal", "errors-only", "none"]

Если вы хотите более точно настроить отображаемую информацию, вы также можете настроить свой веб-пакет с полем статистики в вашем webpack.config.js.


8

Если вы используете, webpack-dev-middlewareвы можете добавить noInfo: trueобъект в качестве второго параметра. Также предполагается, что у вас также работает сервер node / express.

введите описание изображения здесь

Ура.


Я отправляю это другим людям с аналогичной проблемой в немного другой конфигурации, потому что поиск Google ведет их сюда.
leocreatini 03

1
Вы также можете добавить noInfo: trueв devServerэлемент конфигурации в webpack.config.js.
Чад Джонсон

Только один, который работал у меня. Также работает с webpackMiddleware. Спасибо, выходная хрень сводила меня с ума.
Doa


2

Порекомендуйте конфигурацию статистики ниже, это позволит сохранить важные журналы и удалить ненужную информацию.

stats: {
  cached: false,
  cachedAssets: false,
  chunks: false,
  chunkModules: false,
  chunkOrigins: false,
  modules: false
}

2

Здесь вас интересует модуль (часть) Webpack . По сути, именно этот модуль производит вывод . Вывод по умолчанию в основном содержит список активов и список модулей. Вы можете скрыть модули с помощью директивы. В отношении активов аналогичного варианта не существует. Но есть предустановки . Вы можете указать предустановку с помощью option. И заранее , что скрывает активы является ... .stats --hide-modules--displaynone

Существует еще один способ повлиять на статистику: webpack.config.js. Добавьте, stats: {assets: false, modules: false}чтобы значительно снизить объем производства. Или stats: 'none'полностью отключить Webpack. Не то чтобы я это рекомендовал. Вообще errors-onlyэто способ пойти. Чтобы он подействовал, webpack-dev-serverположите его под devServerключ.

Webpack 2.x не имеет --displayопции. И единственный способ скрыть модули - это --hide-modulesпереключение. Под этим я подразумеваю, что указание stats: 'errors-only'или stats: {modules: false}в конфигурации не имеет никакого эффекта. Поскольку это фрагмент кода отменяет все это.

Ибо webpack-dev-serverесть также --no-infoи --quietварианты.

Еще немного понимания того, как это работает. webpack-cliсоздает outputOptionsобъект . Когда компиляция завершается, он преобразует статистику в строку и выводит ее. Stats.toStringпреобразует статистику в json , затем преобразует json в строку . Здесь вы можете увидеть значения по умолчанию .


1

Если вы используете API Webpack напрямую и звоните stats.toString(), вы можете передать параметры, чтобы снизить шум:

webpack(config).watch(100, (err, stats) => {
  console.log(stats.toString({chunks: false}))
})
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.