¿Qué significa "El generador de código ha desoptimizado el estilo de [algún archivo] ya que excede el máximo de" 100KB""?


He añadido un nuevo paquete npm a mi proyecto y lo requiero en uno de mis módulos.

Ahora recibo este mensaje de webpack,

build modulesNote: The code generator has deoptimised the styling of "D:/path/to/project/node_modules/ramda/dist/ramda.js" as it exceeds the max of "100KB".

¿Qué significa? ¿Necesito tomar alguna acción?

Author: mikemaccana, 2015-04-11

6 answers

Esto está relacionado con la opción compact del compilador de Babel, que ordena a "no incluir caracteres de espacios en blanco superfluos y terminadores de línea. Cuando se establece en 'auto' compact se establece en true en tamaños de entrada de >100KB." Por defecto su valor es "auto", por lo que es probablemente la razón por la que está recibiendo el mensaje de advertencia. Ver Documentación de Babel .

Puede cambiar esta opción desde Webpack usando un parámetro de consulta . Por ejemplo:

loaders: [
    { test: /\.js$/, loader: 'babel', query: {compact: false} }
]
 129
Author: Ricardo Stuven,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-23 19:36:48

Esto parece ser un error de Babel. Supongo que utiliza babel-loader, y no está excluyendo bibliotecas externas de su prueba de cargador. Por lo que puedo decir, el mensaje no es dañino, pero aún así deberías hacer algo como esto:

loaders: [
    { test: /\.js$/, exclude: /node_modules/, loader: 'babel' }
]

Echa un vistazo. ¿Eso fue todo?

 40
Author: mhelvens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-24 18:10:52

Cualquiera de las siguientes tres opciones se deshace del mensaje (pero por diferentes razones y con diferentes efectos secundarios, supongo):

  1. excluir el directorio node_modules o explícitamente include el directorio donde reside su aplicación (que presumiblemente no contiene archivos en exceso de 100KB)
  2. establece la opción Babel compact a true (en realidad cualquier valor que no sea "auto")
  3. establezca la opción de Babel compact en false (véase más arriba)

#1 en el la lista anterior se puede lograr excluyendo el directorio node_modules o incluyendo explícitamente el directorio donde reside su aplicación.

Por ejemplo, en webpack.config.js:

let path = require('path');
....
module: {
     loaders: [
          ...
          loader: 'babel',
          exclude: path.resolve(__dirname, 'node_modules/')

... o usando include: path.resolve(__dirname, 'app/') (de nuevo en webpack.config.js).

#2 y #3 en la lista anterior se pueden lograr por el método sugerido en esta respuesta o (mi preferencia) editando el archivo .babelrc. Por ejemplo:

$ cat .babelrc 
{
    "presets": ["es2015", "react"],
    "compact" : true
}

Probado con la siguiente configuración:

$ npm ls --depth 0 | grep babel
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
 16
Author: Marcus Junius Brutus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:55:07

Probé a la manera de Ricardo Stuven, pero no funcionó para mí. Lo que funcionó al final fue agregar "compacto": falso a mi .archivo babelrc:

{
    "compact": false,
    "presets": ["latest", "react", "stage-0"]
}
 4
Author: Yusinto Ngadiman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-09 10:19:39

En react/redux/webpack/babel build se solucionó este error al eliminar el tipo de etiqueta de script text/babel

Error conseguido:

<script type="text/babel" src="/js/bundle.js"></script>

No hay error:

<script src="/js/bundle.js"></script>
 2
Author: Vitaliy Kotov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-25 20:22:55

Para más explicaciones lea THIS LINK, es una opción de Babel compiler que los comandos a no incluyen caracteres de espacio en blanco superfluos y terminadores de línea. hace algunas veces su umbral era 100KB pero ahora es 500KB.

Le propongo desactivar esta opción en su entorno de desarrollo, con este código en el archivo .babelrc.

{
    "env": {
      "development" : {
        "compact": false
      }
    }
}

Para el entorno de producción Babel use la configuración predeterminada que es auto.

 1
Author: AngelHotxxx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-17 11:33:11