J'ai ajouté un nouveau package npm à mon projet et je l'exige dans l'un de mes modules.
Maintenant, je reçois ce message 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'est-ce que ça veut dire? Dois-je prendre des mesures?
Réponses:
Ceci est lié à l'
compact
option du compilateur Babel, qui commande de "ne pas inclure les caractères d'espacement et les terminateurs de ligne superflus. Lorsqu'il est défini sur 'auto', compact est défini sur true pour les tailles d'entrée> 100 Ko." Par défaut, sa valeur est "auto", c'est donc probablement la raison pour laquelle vous recevez le message d'avertissement. Voir la documentation Babel .Vous pouvez modifier cette option à partir de Webpack à l'aide d'un paramètre de requête . Par exemple:
la source
?compact=false
place duquery
paramètre. Par exemple:{test: /\.js$/, loaders: ['ng-annotate', 'babel?compact=false']}
false
. Pour les cas comme le mien où le format de la sortie est important, cela a de la valeur. Comme la plupart des choses, cela dépend. :)Cela semble être une erreur de Babel . Je suppose que vous utilisez babel-loader et que vous n'excluez pas les bibliothèques externes de votre test de chargeur. Pour autant que je sache, le message n'est pas dangereux, mais vous devez quand même faire quelque chose comme ceci:
Regarde. C'était ça?
la source
exclude: /node_modules/
.exclude
.L'une ou l'autre des trois options ci-dessous élimine le message (mais pour des raisons différentes et avec différents effets secondaires, je suppose):
node_modules
répertoire ou explicitementinclude
le répertoire où réside votre application (qui ne contient probablement pas de fichiers de plus de 100 Ko)compact
surtrue
(en fait toute valeur autre que "auto")compact
surfalse
(voir ci-dessus)Le n ° 1 dans la liste ci-dessus peut être obtenu en excluant le
node_modules
répertoire ou en incluant explicitement le répertoire où réside votre application.Par exemple dans
webpack.config.js
:... ou en utilisant
include: path.resolve(__dirname, 'app/')
(à nouveau danswebpack.config.js
).# 2 et # 3 dans la liste ci-dessus peuvent être accomplis par la méthode suggérée dans cette réponse ou (ma préférence) en éditant le
.babelrc
fichier. Par exemple:Testé avec la configuration suivante:
la source
J'ai essayé la méthode de Ricardo Stuven mais cela n'a pas fonctionné pour moi. Ce qui a fonctionné à la fin a été d'ajouter "compact": false à mon fichier .babelrc:
la source
lodash.js
, et cela a résolu le problème.Pour plus d'explications, lisez
THIS LINK
, l'option deBabel compiler
ces commandes est de ne pas inclure les caractères d'espacement et les terminateurs de ligne superflus. il y a quelques temps, son seuil était100KB
mais est maintenant500KB
.Je vous propose de désactiver cette option dans votre environnement de développement, avec ce code dans le
.babelrc
fichier.Pour l'environnement de production,
Babel
utilisez la configuration par défaut qui estauto
.la source
Dans react / redux / webpack / babel build corrige cette erreur en supprimant le type de balise de script text / babel
obtenu une erreur:
pas d'erreur:
la source
dans webpack 4 avec plusieurs règles de module, vous feriez juste quelque chose comme ceci dans votre règle .js:
la source
Ce n'est peut-être pas le cas de la question OP d'origine, mais: si vous dépassez la taille maximale par défaut, cela peut être le symptôme d'un autre problème que vous rencontrez. dans mon cas, j'ai eu la guerre, mais finalement cela s'est transformé en une ERREUR FATALE: MarkCompactCollector: copie semi-espace, le repli dans l'ancienne génération Allocation a échoué - JavaScript tas de mémoire. la raison était que j'ai importé dynamiquement le module actuel , donc cela s'est terminé avec une boucle sans fin ...
la source
require('../../../' + a + '/' + b)
) dynamique . Le supprimer a résolu le problème (et il ne reviendra jamais).