Agregué 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 eso? ¿Necesito tomar alguna acción?
Respuestas:
Esto está relacionado con la
compact
opción del compilador de Babel, que ordena "no incluir caracteres de espacio en blanco superfluos y terminadores de línea. Cuando se establece en 'auto' compacto se establece en verdadero en tamaños de entrada de> 100 KB". De forma predeterminada, su valor es "auto", por lo que probablemente esa sea la razón por la que recibe el mensaje de advertencia. Ver la documentación de Babel .Puede cambiar esta opción desde Webpack utilizando un parámetro de consulta . Por ejemplo:
fuente
?compact=false
lugar delquery
parámetro. Por ejemplo:{test: /\.js$/, loaders: ['ng-annotate', 'babel?compact=false']}
false
. Para casos como el mío donde el formato de salida es importante, eso tiene valor. Como la mayoría de las cosas, depende. :)Esto parece ser un error de Babel . Supongo que usa babel-loader y no excluye bibliotecas externas de su prueba de cargador. Por lo que puedo decir, el mensaje no es dañino, pero aún debe hacer algo como esto:
Echar un vistazo. ¿Fue eso?
fuente
exclude: /node_modules/
.exclude
.Cualquiera de las tres opciones siguientes elimina el mensaje (pero supongo que por diferentes razones y con diferentes efectos secundarios):
node_modules
directorio o explícitamenteinclude
el directorio donde reside su aplicación (que presumiblemente no contiene archivos de más de 100 KB)compact
entrue
(en realidad cualquier valor que no sea "auto")compact
enfalse
(ver arriba)# 1 en la lista anterior se puede lograr excluyendo el
node_modules
directorio o incluyendo explícitamente el directorio donde reside su aplicación.Ej. En
webpack.config.js
:... o usando
include: path.resolve(__dirname, 'app/')
(nuevamente enwebpack.config.js
).# 2 y # 3 en la lista anterior se pueden lograr mediante el método sugerido en esta respuesta o (mi preferencia) editando el
.babelrc
archivo. P.ej:Probado con la siguiente configuración:
fuente
Traté a la manera de Ricardo Stuven pero no funcionó para mí. Lo que funcionó al final fue agregar "compact": false a mi archivo .babelrc:
fuente
lodash.js
, y esto solucionó el problema.Para leer más explicaciones
THIS LINK
, es una opción deBabel compiler
esos comandos no incluir caracteres de espacios en blanco superfluos y terminadores de línea. Hace algunas veces su umbral era100KB
pero ahora lo es500KB
.Le ofrezco que deshabilite esta opción en su entorno de desarrollo, con este código en el
.babelrc
archivo.Para el entorno de producción,
Babel
use la configuración predeterminada que esauto
.fuente
En react / redux / webpack / babel build se corrigió este error al eliminar el tipo de etiqueta de script text / babel
tiene error:
No hay error:
fuente
en webpack 4 con múltiples reglas de módulo, simplemente haría algo como esto en su regla .js:
fuente
Tal vez este no sea el caso de la pregunta OP original, pero: si excede el tamaño máximo predeterminado, esto puede ser un síntoma de algún otro problema que tenga. en mi caso, tuve la advertencia, pero finalmente se convirtió en un ERROR FATAL: MarkCompactCollector: copia de semi-espacio, fallback en la antigua generación. La asignación falló - JavaScript no tiene memoria. la razón fue que importé dinámicamente el módulo actual , por lo que esto terminó con un bucle sin fin ...
fuente
require('../../../' + a + '/' + b)
). Eliminarlo solucionó el problema (y nunca volverá).