web-dev-qa-db-fra.com

certaines fonctionnalités es6 ne sont pas comprises par grunt uglify js?

J'ai utilisé grunt-uglify dans mon projet et je travaille avec es6. pour certaines fonctionnalités de es6, telles que la fonction flèche en gras, cela génère une erreur. Je pense que la superposition ne comprend pas cette syntaxe. J'ai donc un moyen de résoudre ce problème. Je veux dire, puis-je utiliser quelque chose pour que uglify comprenne toutes les syntaxes es6?

15
user6536526

Officiellement, il n'y a pas encore d'outil permettant de minimiser ES6 (d'autres outils, comme le compilateur Google Closure, prennent en charge ES6, mais le transposent en "js classique", puis il est minifié).

Bien que toutes les fonctionnalités es6 ne soient pas prises en charge dans UglifyJs, la branche Harmony de UglifyJS2 semble prendre en charge les fonctions de flèche et autres fonctionnalités.

Vous pouvez lire la discussion à ce sujet dans le numéro de github ici . Il semble qu’il n’y ait pas d’autre option d’attendre (ou de créer son propre minificateur ES6).

Mettre à jour

Vous avez maintenant deux options pour réduire au minimum ES6:

13
Carlos Delgado

Vous pouvez utiliser la branche harmony de grunt-contrib-uglify.

npm install git://github.com/gruntjs/grunt-contrib-uglify.git#harmony --save-dev

fonctionne parfaitement avec es6. Aucun paramètre supplémentaire pour Grunt n'est requis.

14

Si le code résultant n'a pas besoin d'utiliser la syntaxe ES6, il est également possible de transpiler ES6 à ES5 avant de modifier votre code. Cela peut par exemple être fait avec la tâche Grunt grunt-es6-transpiler .

2
gillesB

Je viens de mettre à jour pour [email protected] et cela a fonctionné.

1
Yoraco Gonzales