web-dev-qa-db-ja.com

Webpack:無音出力

Webpackに「重要な情報」のみを端末に記録するように指示する構成オプションがあるかどうかを知りたいです。ほとんどすべてのエラーと警告であり、このすべてではありません。

output of terminal with webpack

たくさんの出力があります!一般的なものを抑制し、webpackに警告/エラーのみを出力させます。 webpackwebpack-dev-server、およびkarma-webpack

noInfo: trueおよびquiet: trueしかし、それはトリックを実行していないようでした。


編集:これは不可能かもしれないと考えているので、githubで問題を作成しました: https:// github。 com/webpack/webpack/issues/1191

69
kentcdodds

この機能がいつ追加されたかはわかりませんが、 ドキュメントwebpackMiddlewareプロパティを追加でき、その上でnoInfo: true。これを行うと、すべてのノイズが除去されます!ただし、エラーがある場合でも出力が表示されます。わーい!

26
kentcdodds

私の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
  }
 }
}
47
TetraDev

????あなたはすべてを必要としません。必要なのは

実際、これら2つは非常に効果的です。

stats: 'errors-only',

エクスポートされたオブジェクトの最後。

また、stats: 'minimal',を使用して、エラーまたは新しいコンパイルが発生したときにのみ出力することもできます。 Webpackの公式ドキュメント から詳細を読む

22
Ahmad Awais

webpack-dev-middlewareを使用している場合、2番目のパラメーターとしてnoInfo: trueをオブジェクトにスローできます。 また、ノード/エクスプレスサーバーも実行していると仮定します。

enter image description here

乾杯。

8
leocreatini

表示する情報量のレベルを選択できる--displayオプションがあります。

webpack --helpから:

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

表示される情報をより正確に構成する場合は、webpack.config.jsの-​​ stats フィールドを使用してwebpackを構成することもできます。

6
papillon

Webpack

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

開発サーバー

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

参照

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

4
Chris

Webpack APIを直接使用しており、stats.toString()を呼び出している場合、パラメーターを渡してノイズを抑えることができます。

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

以下の統計設定を推奨します。これにより、重要なログが保持され、無駄な情報が削除されます。

stats: {
  cached: false,
  cachedAssets: false,
  chunks: false,
  chunkModules: false,
  chunkOrigins: false,
  modules: false
}
1
aaron.xiao

ここで興味があるのは statsmoduleWebpack の(一部)です。基本的に、 出力 を生成するのはこのモジュールです。デフォルトの出力には、ほとんどのアセットのリストとモジュールのリストが含まれています。 --hide-modulesディレクティブを使用してモジュールを非表示にできます。資産に関しては、同様のオプションは存在しません。しかし、 プリセット があります。 --displayオプションでプリセットを指定できます。そして、アセットを隠すプリセットは... noneです。

統計に影響を与える別の方法があります:webpack.config.jsstats: {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-clioutputOptionsオブジェクト を作成します。コンパイルが終了すると、統計を string および outputs itに変換します。 Stats.toStringstatsjson に変換し、次に jsonstring に変換します。ここに デフォルト があります。

1
x-yuri