web-dev-qa-db-ger.com

Webpack: Ausgabe stummschalten

Ich würde gerne wissen, ob es eine Konfigurationsoption gibt, mit der Webpack angewiesen wird, nur die "wichtigen Informationen" auf dem Terminal zu protokollieren. Ziemlich einfach nur Fehler und Warnungen, nicht alles davon:

output of terminal with webpack

Es gibt einfach so viel Output! Würde gerne das übliche Zeug unterdrücken und habe nur die Warnungen/Fehler im Webpack ausgegeben. Möchte eine Lösung für webpack, webpack-dev-server und karma-webpack.

Note: Ich habe noInfo: true und quiet: true ausprobiert, aber das schien den Trick nicht zu tun.


Edit: Ich denke, das ist möglicherweise nicht möglich, also habe ich ein Problem auf github erstellt: https://github.com/webpack/webpack/issues/1191

67
kentcdodds

Ich weiß nicht, wann diese Funktion hinzugefügt wurde, aber ich habe gerade in the docs bemerkt, dass Sie eine webpackMiddleware -Eigenschaft hinzufügen können, und dazu können Sie noInfo: true angeben. Dadurch werden alle Geräusche beseitigt! Sie sehen jedoch immer noch Ausgabe, wenn Fehler auftreten. Yay!

25
kentcdodds

In meiner Webpack-Konfiguration reduzierte dies meine inkrementelle Build-Zeit um 8 Sekunden und die Ausgabe wurde stummgeschaltet. Der wichtigste ist chunks: false

Spielen Sie damit, um Ihre Bedürfnisse zu erfüllen

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
  }
 }
}
43
TetraDev

???? Du brauchst das alles nicht. Alles was Sie brauchen ist das 

Eigentlich funktionieren diese beiden großartig.

stats: 'errors-only',

am Ende des exportierten Objekts.

Man könnte auch stats: 'minimal', verwenden, der nur ausgegeben wird, wenn Fehler auftreten oder neu kompiliert werden. Lesen Sie mehr aus der offiziellen Dokumentation von Webpack.

19
Ahmad Awais

Wenn Sie den webpack-dev-middleware verwenden, können Sie den noInfo: true in einem Objekt als zweiten Parameter verwenden. Auch vorausgesetzt, Sie haben auch einen Knoten-/Express-Server.

 enter image description here

Prost.

7
leocreatini

Sie haben die Option --display, mit der Sie die Informationsmenge auswählen können, die Sie anzeigen möchten.

Von webpack --help:

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

Wenn Sie die angezeigten Informationen genauer konfigurieren möchten, können Sie Ihr Webpack auch mit dem Feld stats in Ihrem webpack.config.js konfigurieren.

4
papillon

Webpack

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

Dev Server

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

Referenz

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

3
Chris

Wenn Sie die Webpack-API direkt verwenden und stats.toString() aufrufen, können Sie Parameter übergeben, um das Rauschen zu reduzieren:

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

Stats config unten empfehlen, dadurch werden wichtige Protokolle gespeichert und nutzlose Informationen entfernt.

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

Was Sie hier interessiert, ist statsModul (Teil) des Webpack . Im Grunde ist es dieses Modul, das die Ausgabe erzeugt. Die Ausgabe enthält standardmäßig meistens eine Liste von Assets und eine Liste von Modulen. Sie können Module mit der Direktive --hide-modules ausblenden. In Bezug auf Vermögenswerte besteht keine ähnliche Option. Aber es gibt Voreinstellungen . Sie können die Voreinstellung mit der Option --display angeben. Voreinstellung, die Assets verbirgt, ist ... none.

Es gibt eine andere Möglichkeit, Statistiken zu beeinflussen: webpack.config.js. Fügen Sie stats: {assets: false, modules: false} hinzu, um die Ausgabe erheblich zu reduzieren. Oder stats: 'none', um Webpack vollständig zum Schweigen zu bringen. Nicht dass ich es empfehlen kann. Im Allgemeinen ist errors-only ein Weg zu gehen. Um es auf webpack-dev-server zu wirken, setzen Sie es unter devServer.

Webpack 2.x hat keine --display-Option. Die einzige Möglichkeit, Module auszublenden, ist --hide-modules switch. Damit meine ich, dass die Angabe von stats: 'errors-only' oder stats: {modules: false} in config keine Auswirkung hat. Da dieses Stück Code all dies überschreibt.

Für webpack-dev-server gibt es auch die Optionen --no-info und --quiet .

Einige weitere Einblicke in die Funktionsweise. webpack-cli erstellt outputOptions object . Nach Abschluss der Kompilierung werden Statistiken in string und output it konvertiert. Stats.toString konvertiert stats in json und konvertiert dann json in string . Hier können Sie die Standardeinstellungen sehen.

0
x-yuri