如何从 webpack 终端输出中抑制构建的模块?

Posted

技术标签:

【中文标题】如何从 webpack 终端输出中抑制构建的模块?【英文标题】:How to suppress built modules from webpack terminal output? 【发布时间】:2017-08-17 06:11:41 【问题描述】:

当使用 webpack2.x 构建我的项目时,终端控制台的构建日志是这样的:

Hash: d09758ddb088e1f8cd3b
Version: webpack 2.2.1
Time: 9450ms
                         Asset       Size  Chunks             Chunk Names
   app.d09758ddb088e1f8cd3b.js    28.7 kB       0  [emitted]  app
vendor.d09758ddb088e1f8cd3b.js     206 kB       1  [emitted]  vendor
style.d09758ddb088e1f8cd3b.css    1.89 kB       0  [emitted]  app
             index_bundle.html  852 bytes          [emitted]
   [1] ./~/vue/dist/vue.common.js 226 kB 1 [built]
[1] ./~/vue/dist/vue.common.js 226 kB 1 [built]
   [3] ./~/vue-loader/lib/component-normalizer.js 1.12 kB 0 [built]
   [4] ./~/process/browser.js 5.3 kB 1 [built]
   [5] ./~/lodash/lodash.js 540 kB 1 [built]
   [7] ./~/axios/index.js 40 bytes 1 [built]
   [8] ./~/vue-router/dist/vue-router.common.js 56.1 kB 1 [built]

我怎样才能删除像./~/vue/dist/vue.common.js 226 kB 1 [built] 这样的消息并得到这个输出:

Hash: d09758ddb088e1f8cd3b
Version: webpack 2.2.1
Time: 9450ms
                         Asset       Size  Chunks             Chunk Names
   app.d09758ddb088e1f8cd3b.js    28.7 kB       0  [emitted]  app
vendor.d09758ddb088e1f8cd3b.js     206 kB       1  [emitted]  vendor
style.d09758ddb088e1f8cd3b.css    1.89 kB       0  [emitted]  app
             index_bundle.html  852 bytes          [emitted]

【问题讨论】:

【参考方案1】:

您可以使用stats 选项maxModules 并将其设置为0,这样它就不会显示任何已构建的模块。此选项当前未记录。在你的 webpack 配置中添加:

stats: 
  maxModules: 0

理论上你应该可以使用 modules: falsechunkModules: false 但这似乎不适用于 webpack CLI,至少它适用于 webpack-dev-middleware


该选项现在记录在Configuration - Stats。

【讨论】:

【参考方案2】:

使用 webpack node.js API:

const compiler = webpack(config);

compiler.run((err, stats) => 
  if (err) 
    console.error(err.stack || err);
    if (err.details) console.error(err.details);
    process.exit(1);
  

  process.stdout.write(stats.toString(
    chunks: false,
    colors: true
  ) + '\n');

  if (stats.hasErrors()) 
    process.exit(2);
  
);

使用 webpack CLI 时,可以尝试--hide-modules 选项。

【讨论】:

【参考方案3】:

由于--hide-modules 似乎已被删除,请将以下内容添加到您的 webpack.config.js:

stats: 
    modules: false

此选项记录在此:Stats | webpack

【讨论】:

这对我有用,我在最新的 webpack ATM 上`"webpack": "^5.65.0", "webpack-cli": "^4.9.1"`。非常感谢。【参考方案4】:

实际上,有很多选项可以配置你的 webpack cli 输出。您可以在webbapck.config 文件中的stats 对象中设置它。不幸的是,我找不到隐藏您想要的线条的选项。

请参阅Docs 了解设置 cli 输出

【讨论】:

以上是关于如何从 webpack 终端输出中抑制构建的模块?的主要内容,如果未能解决你的问题,请参考以下文章

构建自己的 webpack 知识体系

如何通过 webpack 从生产构建中删除 cpp 文件?

Webpack 不捆绑输出 JS 文件

Webpack2,如何从构建中排除 react 和 react dom

webpack

webpack五个核心模块