108

我想知道是否有配置选项告诉 webpack 只将“重要信息”记录到终端。几乎只是错误和警告,而不是全部:

使用 webpack 输出终端

有这么多的输出!很想压制常见的东西,只让 webpack 输出警告/错误。想要 , 和 的webpack解决webpack-dev-server方案karma-webpack

注意:我试过了noInfo: truequiet: true但这似乎没有奏效。


编辑:我认为这可能是不可能的,所以我在 github 上创建了一个问题:https ://github.com/webpack/webpack/issues/1191

4

10 回答 10

63

在我的 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
  }
 }
}
于 2016-06-06T18:25:16.960 回答
55

你不需要这一切。您所需要的只是

其实这两个效果很好。

stats: 'errors-only',

在导出对象的末尾。

也可以stats: 'minimal',仅在发生错误或新编译时使用它输出。从Webpack的官方文档中阅读更多内容。

于 2018-01-12T17:57:37.473 回答
32

我不知道何时添加此功能,但我只是在文档中注意到您可以添加一个webpackMiddleware属性并且您可以指定noInfo: true. 这样做可以消除所有噪音!但是当出现错误时,您仍然会看到输出。耶!

于 2015-08-11T04:59:17.003 回答
14

--display可以选择要显示的信息量级别。

来自webpack --help

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

如果你想配置更精确显示的信息,你也可以你的webpack.config.js.

于 2018-05-29T08:53:19.537 回答
9

如果您使用的是,webpack-dev-middleware您可以将noInfo: true对象作为第二个参数。还假设您还运行了一个节点/快速服务器。

在此处输入图像描述

干杯。

于 2016-01-03T19:33:07.787 回答
8

网页包

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

开发服务器

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

参考

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

于 2018-04-07T12:59:33.733 回答
5

这些天来noInfo quietstats已经被Webpack 配置根目录中的基础设施日志取代:

// webpack.config.js
...
infrastructureLogging: {
  level: 'error',
},
于 2021-04-24T18:30:54.970 回答
3

您在这里感兴趣的是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'orstats: {modules: false}没有效果。由于这段代码覆盖了所有这些。

因为webpack-dev-server也有--no-info--quiet选项。

更深入地了解它是如何工作的。webpack-cli创建outputOptions对象。编译完成后,它将统计信息转换为字符串输出Stats.toStringstats转换为json,然后将json转换为string。在这里你可以看到默认值

于 2018-06-20T10:28:52.210 回答
2

推荐下面的统计配置,这将保留重要的日志并删除无用的信息。

stats: {
  cached: false,
  cachedAssets: false,
  chunks: false,
  chunkModules: false,
  chunkOrigins: false,
  modules: false
}
于 2018-03-19T02:05:56.687 回答
1

如果您直接使用 Webpack API,并且正在调用stats.toString(),那么您可以传递参数以降低噪音:

webpack(config).watch(100, (err, stats) => {
  console.log(stats.toString({chunks: false}))
})
于 2016-03-27T20:47:26.457 回答