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 es6, telles que la fonction de la flèche en graisse, il crée une erreur. Je pense que l'uglify ne comprend pas cette syntaxe. Donc, j'ai un moyen de résoudre ce problème. Je veux dire, est-ce que je peux utiliser tout pour comprendre toutes les syntaxe es6?

Officiellement, il n'y a pas d'outil qui minifise encore ES6 (d'autres outils, comme le compilateur Google Closure, supporte ES6, mais il le transpile en «js traditionnel» et ensuite il est minifié).

Bien que toutes les fonctionnalités es6 ne soient prises en charge dans UglifyJs, la branche Harmony de UglifyJS2 semble supporter les fonctions de flèche et d'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 une autre option d'attente (ou créez votre propre minificateur ES6).

Mettre à jour

Maintenant, vous avez 2 options pour minify ES6:

  • Babili, un minificateur intelligent ES6 + basé sur la chaîne d'outils Babel (bêta)
  • La branche harmonie d'UglifyJS

Si le code résultant n'a pas besoin d'utiliser la syntaxe ES6, il est également possible de transporter ES6 vers ES5, avant d'épier votre code. Cela peut se faire par exemple avec Grunt task grunt-es6-transpiler .

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

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

Fonctionne parfaitement avec es6. Aucun réglage supplémentaire pour grunt n'est nécessaire.

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