Webpack:静音输出


82

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

带webpack的终端输出

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

注意:我尝试过noInfo: truequiet: true但是似乎并没有解决问题。


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


看起来像在命令行上,该noInfo选项实际上是的倒数--info,默认为,true因此如果您运行webpack-dev-server --info false它,则可以使您更接近想要的位置。
naartjie 2015年

1
看来是为webpack-dev-server做的...现在,只要我能在测试中得到它:-)
kentcdodds

1
如果有人好奇,请执行以下操作:NODE_ENV=development webpack-dev-server --content-base app/ --port 8888 --colors --progress --info false
kentcdodds 2015年

1
这也适用:NODE_ENV=development webpack-dev-server --content-base app/ --port 8888 --colors --progress --no-info
kentcdodds 2015年

啊,--no-info很高兴知道,谢谢
naartjie 2015年

Answers:


56

在我的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
尼尔·埃哈特


31

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


10

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

来自webpack --help

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

如果您想更精确地配置显示的信息,还可以使用中的stats字段配置webpack webpack.config.js


8

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

在此处输入图片说明

干杯。


我将这个问题发布给其他人,但问题略有不同,因为类似的问题,因为Google搜索在这里领先。
leocreatini

您也可以在webpack.config.js中添加noInfo: truedevServer配置项。
乍得·约翰逊

只有一个对我有用。也可以在webpackMiddleware上使用。谢谢,废话让我发疯。
杜阿


2

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

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

1

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

webpack(config).watch(100, (err, stats) => {
  console.log(stats.toString({chunks: false}))
})

1

您对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}在config中无效。由于代码将覆盖所有内容。

对于webpack-dev-server也有--no-info--quiet选择。

有关其工作原理的更多见解。webpack-cli创建outputOptions对象。编译完成后,它将统计信息转换为字符串并将其输出Stats.toString统计信息转换为json,然后将json转换为string。在这里您可以看到默认值

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.