Webpack: salida de silencio

82

Me gustaría saber si hay una opción de configuración para decirle a webpack que solo registre la "información importante" en la terminal. Prácticamente solo errores y advertencias, no todo esto:

salida de terminal con paquete web

¡Hay tanta salida! Me encantaría suprimir las cosas comunes y solo que el paquete web muestre las advertencias / errores. Le gustaría una solución para webpack, webpack-dev-servery karma-webpack.

Nota : lo intenté noInfo: truey quiet: trueno pareció funcionar.


Editar: creo que esto puede no ser posible, así que he creado un problema en github: https://github.com/webpack/webpack/issues/1191

kentcdodds
fuente
Parece que en la línea de comandos la noInfoopción es en realidad la inversa de --info, que por defecto es trueasí que si la ejecuta webpack-dev-server --info falsedebería acercarlo a donde quiere estar.
naartjie
1
Eso parece hacerlo para webpack-dev-server ... Ahora, si tan solo pudiera obtenerlo para mis pruebas :-)
kentcdodds
1
Si alguien tiene curiosidad, esto es lo que ejecuto ahora:NODE_ENV=development webpack-dev-server --content-base app/ --port 8888 --colors --progress --info false
kentcdodds
1
Esto también funciona:NODE_ENV=development webpack-dev-server --content-base app/ --port 8888 --colors --progress --no-info
kentcdodds
Ah, --no-infoes bueno saberlo, gracias
naartjie

Respuestas:

56

En la configuración de mi paquete web, hacer esto redujo mi tiempo de compilación incremental en 8 segundos y silenció la salida. El principal eschunks: false

Juega con él para que se adapte a tus necesidades

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
  }
 }
}
TetraDev
fuente
4
¡Funciona genial! Las claves para deshabilitar son hash, version, timings, assets, chunks.
Neal Ehardt
41

👋 No necesitas todo eso. Todo lo que necesitas es el

En realidad, estos dos funcionan muy bien.

stats: 'errors-only',

al final del objeto exportado.

También se podría usar stats: 'minimal',solo salidas cuando ocurren errores o una nueva compilación. Lea más de la documentación oficial de Webpack.

Ahmad Awais
fuente
31

No sé cuándo se agregó esta función, pero acabo de notar en los documentos que puede agregar una webpackMiddlewarepropiedad y que puede especificar noInfo: true. ¡Hacer esto elimina todo el ruido! Pero sigue viendo la salida cuando hay errores. ¡Hurra!

kentcdodds
fuente
10

Tiene la --displayopción que le permite elegir un nivel de cantidad de información que desea mostrar.

De webpack --help:

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

Si desea configurar la información que se muestra con mayor precisión, también puede configurar su paquete web con el campo de estadísticas en su webpack.config.js.

Papillon
fuente
8

Si está utilizando webpack-dev-middleware, puede incluir noInfo: trueun objeto como segundo parámetro. También asumiendo que también tiene un servidor de nodo / expreso en ejecución.

ingrese la descripción de la imagen aquí

Salud.

leocreatini
fuente
Estoy publicando esto para otras personas con un problema similar en una configuración ligeramente diferente porque la Búsqueda de Google los lleva aquí.
leocreatini
También se pueden añadir noInfo: truea la devServerelemento de configuración en webpack.config.js.
Chad Johnson
Solo uno que funcionó para mí. También funciona en webpackMiddleware. Gracias, la basura me estaba volviendo loco.
Doa
2

Recomiende la configuración de estadísticas a continuación, esto mantendrá registros importantes y eliminará información inútil.

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

Si está utilizando la API de Webpack directamente y está llamando stats.toString(), puede pasar parámetros para reducir el ruido:

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

Lo que le interesa aquí es el módulo (parte) del Webpack . Básicamente, es este módulo el que produce la salida . La salida por defecto contiene principalmente una lista de activos y una lista de módulos. Puede ocultar módulos con directive. En cuanto a los activos, no existe una opción similar. Pero hay presets . Puede especificar un preajuste con la opción. Y preestablecer que se esconde activos es ... .stats --hide-modules--displaynone

Hay otra manera de influir en las estadísticas: webpack.config.js. Agregue stats: {assets: false, modules: false}para reducir la producción de manera significativa. O stats: 'none'para silenciar Webpack por completo. No es que lo recomiende. Generalmente errors-onlyes un camino a seguir. Para que afecte, webpack-dev-serverponlo bajo devServerllave.

Webpack 2.x no tiene --displayopción. Y la única forma de ocultar módulos es --hide-modulescambiar. Con eso quiero decir que especificar stats: 'errors-only'o stats: {modules: false}en config no tiene ningún efecto. Dado que este fragmento de código anula todo eso.

Porque webpack-dev-servertambién hay opciones --no-infoy --quiet.

Más información sobre cómo funciona. webpack-clicrea outputOptionsobjeto . Cuando finaliza la compilación, convierte las estadísticas en cadenas y las genera . Stats.toStringconvierte estadísticas a json , luego convierte json a cadena . Aquí puede ver los valores predeterminados .

x-yuri
fuente