web-dev-qa-db-fra.com

Webpack: sortie de silence

J'aimerais savoir s'il existe une option de configuration pour indiquer à Webpack de ne consigner que les "informations importantes" sur le terminal. En gros, juste des erreurs et des avertissements, pas tous:

output of terminal with webpack

Il y a tellement de sortie! J'adorerais supprimer les éléments courants et ne faire en sorte que Webpack ne produise que les avertissements/erreurs. Souhaitez une solution pour webpack, webpack-dev-server et karma-webpack.

Note: J'ai essayé noInfo: true et quiet: true mais cela ne semblait pas suffire.


Edit: Je pense que cela pourrait ne pas être possible. J'ai donc créé un problème sur github: https://github.com/webpack/webpack/issues/1191

67
kentcdodds

Je ne sais pas quand cette fonctionnalité a été ajoutée, mais je viens de remarquer dans la documentation que vous pouvez ajouter une propriété webpackMiddleware et que vous pouvez spécifier noInfo: true. Faire cela supprime tout le bruit! Mais vous voyez toujours des résultats quand il y a des erreurs. Yay!

25
kentcdodds

Dans ma configuration Webpack, cette opération réduisait mon temps de construction incrémentiel de 8 secondes et ma sortie en mode silencieux. Le principal est chunks: false

Jouez avec pour répondre à vos besoins

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

???? Tu n'as pas besoin de tout ça. Tout ce dont vous avez besoin est le 

En fait, ces deux fonctionnent très bien.

stats: 'errors-only',

à la fin de l'objet exporté.

On pourrait aussi utiliser stats: 'minimal',, qui ne génère que des erreurs ou une nouvelle compilation Plus d'informations dans la documentation officielle de Webpack.

19
Ahmad Awais

Si vous utilisez le webpack-dev-middleware, vous pouvez lancer le noInfo: true dans un objet en tant que second paramètre. Supposons également qu'un nœud/un serveur express est en cours d'exécution.

 enter image description here

À votre santé.

7
leocreatini

Vous disposez de l'option --display qui vous permet de choisir le niveau de quantité d'informations que vous souhaitez afficher.

De webpack --help:

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

Si vous souhaitez configurer les informations affichées plus précisément, vous pouvez également configurer votre pack Web avec le champ stats de votre webpack.config.js.

4
papillon

Webpack

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

Serveur de développement

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

Référence

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

3
Chris

Si vous utilisez directement l'API Webpack et que vous appelez stats.toString(), vous pouvez alors passer des paramètres pour réduire le bruit:

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

Recommandez la configuration des statistiques ci-dessous, cela conservera des journaux importants et supprimera les informations inutiles.

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

Ce qui vous intéresse ici est statsmodule (une partie) de Webpack . En gros, c'est ce module qui produit la sortie . La sortie par défaut contient principalement une liste d'actifs et une liste de modules. Vous pouvez masquer des modules avec la directive --hide-modules. En ce qui concerne les actifs, aucune option similaire n’existe. Mais il y a presets . Vous pouvez spécifier un paramètre prédéfini avec l'option --display. Et le préréglage qui cache les actifs est ... none.

Il existe un autre moyen d'influencer les stats: webpack.config.js. Ajoutez stats: {assets: false, modules: false} pour réduire la sortie de manière significative. Ou stats: 'none' pour faire totalement taire Webpack. Pas que je le recommande. Généralement, errors-only est une solution. Pour que cela affecte webpack-dev-server, placez-le sous la clé devServer.

Webpack 2.x n'a pas l'option --display. Et le seul moyen de masquer les modules est le commutateur --hide-modules. J'entends par là que spécifier stats: 'errors-only' ou stats: {modules: false} dans la configuration n'a aucun effet. Depuis this morceau de code remplace tout cela.

Pour webpack-dev-server, il existe également --no-info et --quiet options.

Quelques informations supplémentaires sur son fonctionnement. webpack-cli crée outputOptions objet . Une fois la compilation terminée, il convertit les statistiques en string et output it. Stats.toString convertit stats en json , puis convertit json en chaîne . Ici vous pouvez voir les valeurs par défaut .

0
x-yuri