web-dev-qa-db-fra.com

"Que signifie" Le générateur de code a désoptimisé le style de [certains fichiers] car il dépasse le maximum de "100 Ko" "?

J'ai ajouté un nouveau package npm à mon projet et 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?

135
Johan Alkstål

Ceci est lié à l'option compact du compilateur Babel, qui commande à "n'inclut pas les caractères d'espacement superflus ni les fins de ligne. Lorsque cette option est définie sur" auto ", compact est défini sur true lorsque la taille d'entrée est> 100 Ko." Par défaut sa valeur est "auto", c'est probablement la raison pour laquelle vous recevez le message d'avertissement. Voir Documentation Babel .

Vous pouvez modifier cette option à partir de Webpack à l’aide du paramètre query . Par exemple:

loaders: [
    { test: /\.js$/, loader: 'babel', query: {compact: false} }
]
132
Ricardo Stuven

Cela semble être une erreur Babel . Je suppose que vous utilisez babel-loader et n'excluez pas les bibliothèques externes de votre test de chargeur. Autant que je sache, le message n'est pas dangereux, mais vous devriez quand même faire quelque chose comme ça:

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

Regarde. Était-ce ça?

41
mhelvens

J'ai essayé la manière de Ricardo Stuven mais ça n'a pas fonctionné pour moi. Ce qui a finalement fonctionné a été d’ajouter "compact": false à mon fichier .babelrc:

{
    "compact": false,
    "presets": ["latest", "react", "stage-0"]
}
5
Yusinto Ngadiman

Pour plus d'explications, lisez THIS LINK , l'option Babel compiler permet de commander n'inclut pas les caractères d'espacement superflus ni les fins de ligne. Il y a quelques temps, son seuil était 100KB mais il est maintenant 500KB.

Je vous propose de désactiver cette option dans votre environnement de développement, avec ce code dans le fichier .babelrc.

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

Pour l’environnement de production Babel, utilisez la configuration par défaut auto.

2
AmerllicA

Dans react/redux/webpack/babel build corrige cette erreur en supprimant le type de balise de script text/babel

a eu une erreur:

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

pas d'erreur:

<script src="/js/bundle.js"></script>
2
Vitaliy Kotov

cette guerre m'est arrivée et a finalement obtenu une ERREUR FATALE: MarkCompactCollector: copie semi-espace, repli dans l'ancienne génération Échec de l'allocation - Mémoire JavaScript insuffisante . La raison en est que j'ai importé dynamiquement le module current. , donc cela a abouti à une boucle sans fin ...

0
shmuel friedman

dans Webpack 4 avec plusieurs règles de module, vous feriez juste quelque chose comme ceci dans votre règle .js:

{
     test: /\.(js)$/,
     loader: 'babel-loader',
     options: {
          presets: ['es2015'],    // or whatever
          plugins: [require('babel-plugin-transform-class-properties')], // or whatever
          compact: true    // or false during development
     }
},
0
steev