Webpack: вихід тиші


91

Я хотів би знати, чи є параметр конфігурації, щоб повідомити webpack лише реєструвати "важливу інформацію" на терміналі. Значною мірою лише помилки та попередження, не все з цього:

вихід терміналу з веб-пакетом

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

Примітка : Я спробував noInfo: trueі , quiet: trueале це , схоже, не зробити трюк.


Редагувати: Я думаю, що це може бути неможливо, тому я створив випуск на github: https://github.com/webpack/webpack/issues/1191


1
Схоже, у командному рядку noInfoпараметр насправді є оберненим --info, який за замовчуванням є, trueтому, якщо ви webpack-dev-server --info falseйого запустите, він повинен наблизити вас туди, де ви хочете бути.
naartjie

1
Здається, це робиться для webpack-dev-сервера ... Тепер, якби я міг отримати його для своїх тестів :-)
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ввести об'єкт як другий параметр. Також припускаючи, що у вас також працює вузол / експрес-сервер.

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

Ура.


Я публікую це для інших людей із подібною проблемою у дещо іншій конфігурації, оскільки Пошук Google веде їх сюди.
leocreatini

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 . В основному, саме цей модуль видає вихідні дані . Результат за замовчуванням в основному містить список активів та список модулів. Ви можете приховати модулі за допомогою директиви. Щодо активів, подібного варіанту не існує. Але є пресети . Ви можете вказати пресет з опцією. І заздалегідь , що приховує активи є ... .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.