我想知道是否有一个配置选项可以告诉 webpack 仅将“重要信息”记录到终端。几乎只是错误和警告,而不是全部:
输出实在是太多了!希望抑制常见的内容,只让 webpack 输出警告/错误。想要
webpack
、webpack-dev-server
和 karma-webpack
的解决方案。
注意:我尝试了
noInfo: true
和quiet: true
,但这似乎没有成功。
编辑:我认为这可能不可能,所以我在github上创建了一个问题:https://github.com/webpack/webpack/issues/1191
在我的 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
}
}
}
实际上,这两个效果很好。
stats: 'errors-only',
在导出对象的末尾。
也可以使用
stats: 'minimal',
,它仅在发生错误或新编译时输出。阅读更多内容 Webpack 官方文档。
我不知道这个功能是什么时候添加的,但我只是在文档中注意到你可以添加一个
webpackMiddleware
属性,然后你可以指定noInfo: true
。这样做可以消除所有噪音!但出现错误时您仍然会看到输出。耶!
您可以使用
--display
选项来选择要显示的信息量级别。
来自
webpack --help
:
--display: Select display preset
[string] [choices: "", "verbose", "detailed", "normal", "minimal", "errors-only", "none"]
如果您想更精确地配置显示的信息,您还可以使用 webpack.config.js
中的
stats字段配置您的 webpack。
这些天
noInfo
quiet
和 stats
已被 Webpack 配置根目录中的 infrastructionLogging 取代:
// webpack.config.js
...
infrastructureLogging: {
level: 'error',
},
...
stats: {
modules: false,
},
...
...
devServer: {
stats: {
modules: false,
},
},
...
您在这里感兴趣的是Webpack
的
stats
模块(部分)。基本上,正是这个模块产生输出。默认情况下的输出主要包含资产列表和模块列表。您可以使用 --hide-modules
指令隐藏模块。关于资产,不存在类似的选择。但有预设。您可以使用 --display
选项指定预设。隐藏资产的预设是...none
.
还有另一种影响统计数据的方法:
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}
没有任何效果。因为this这段代码覆盖了所有这些。
对于
webpack-dev-server
还有 --no-info
和 --quiet
选项。
更深入地了解其工作原理。
webpack-cli
创建 outputOptions
对象。编译完成后,它将统计信息转换为字符串并输出。 Stats.toString
将 stats 转换为 json,然后将 json 转换为 string。在这里您可以看到默认值。
推荐下面的统计配置,这将保留重要的日志并删除无用的信息。
stats: {
cached: false,
cachedAssets: false,
chunks: false,
chunkModules: false,
chunkOrigins: false,
modules: false
}
如果您直接使用 Webpack API,并且调用
stats.toString()
,那么您可以传递参数来降低噪音:
webpack(config).watch(100, (err, stats) => {
console.log(stats.toString({chunks: false}))
})
使用 Webpack 5,我必须从 devServer 中删除统计信息并将其添加为基本配置属性。 所有相关统计信息都可以在此处找到以进行其他配置https://webpack.js.org/configuration/stats/
https://webpack.js.org/configuration/other-options/#infrastructionlogging
以下内容对我有用:(我使用友好错误)
{
stats: 'errors-only',
infrastructureLogging: {
level: 'none',
},
devServer:{
// other config
}
}
您还可以更具体地了解使用对象显示的内容。
{
stats: {
entrypoints: false,
colors: true,
assets: false,
chunks: false,
modules: false,
},
infrastructureLogging: {
level: 'none',
},
devServer:{
// other config
}
}
“最静音”配置:
infrastructureLogging: { level: 'error' },
stats: 'minimal',
infrastructureLogging
,stats
。
webpack --stats errors-only
是您可能需要的命令行标志 (v5)。