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


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

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.


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!


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.


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.


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
}

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}))
})

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 .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.