Webpack: silence output

2019-01-31 05:27发布

I would like to know if there's a configuration option to tell webpack to only log the "important information" to the terminal. Pretty much just errors and warnings, not all of this:

output of terminal with webpack

There's just so much output! Would love to suppress the common stuff and only have webpack output the warnings/errors. Would like a solution for webpack, webpack-dev-server, and karma-webpack.

Note: I tried noInfo: true and quiet: true but that didn't seem to do the trick.


Edit: I'm thinking this may not be possible, so I've created an issue on github: https://github.com/webpack/webpack/issues/1191

9条回答
Lonely孤独者°
2楼-- · 2019-01-31 05:42
老娘就宠你
3楼-- · 2019-01-31 05:45

In my webpack config, Doing this reduced my incremental build time by 8 seconds and silenced output. The main one is chunks: false

Play with it to fit your needs

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楼-- · 2019-01-31 05:47

If you are using the webpack-dev-middleware you can throw the noInfo: true in an object as the second parameter. Also assuming you also have a node/express server running.

enter image description here

Cheers.

查看更多
虎瘦雄心在
5楼-- · 2019-01-31 05:47

Webpack

  ...
  stats: {
    modules: false,
  },
  ...

Dev Server

  ...
  devServer: {
    stats: {
      modules: false,
    },
  },
  ...

Reference

https://webpack.js.org/configuration/stats/

查看更多
欢心
6楼-- · 2019-01-31 05:48

Recommend stats config below, this will keep significant logs and remove useless info.

stats: {
  cached: false,
  cachedAssets: false,
  chunks: false,
  chunkModules: false,
  chunkOrigins: false,
  modules: false
}
查看更多
姐就是有狂的资本
7楼-- · 2019-01-31 05:49

What you're interested in here is stats module (part) of the Webpack. Basically, it's this module that produces the output. The output by default mostly contains list of assets, and list of modules. You can hide modules with --hide-modules directive. Regarding assets, no similar option exists. But there are presets. You can specify preset with --display option. And preset that hides assets is... none.

There is another way to influence stats: webpack.config.js. Add stats: {assets: false, modules: false} to reduce output significantly. Or stats: 'none' to silence Webpack entirely. Not that I recommend it. Generally errors-only is a way to go. To make it affect webpack-dev-server put it under devServer key.

Webpack 2.x doesn't have --display option. And the only way to hide modules is --hide-modules switch. By that I mean that specifying stats: 'errors-only' or stats: {modules: false} in config has no effect. Since this piece of code overrides all that.

For webpack-dev-server there are also --no-info and --quiet options.

Some more insight into how it works. webpack-cli creates outputOptions object. When compilation finishes, it converts stats to string and outputs it. Stats.toString converts stats to json, then converts json to string. Here you can see the defaults.

查看更多
登录 后发表回答