50 votes

Dois-je utiliser le YUI Compressor, ou le nouveau Google Closure compiler pour compresser mon JavaScript?

YUI Compressor a été le consensus meilleur outil pour minimiser, mais la Fermeture semble que cela pourrait être mieux.

27voto

AdaTheDev Points 53358

"Celui qui vous est le mieux pour vous", je pense que c'est la réponse générale à ce moment - YUI a été disponible plus longtemps ainsi, sans aucun doute, celle qui a actuellement le consensus comme étant le meilleur outil. Alors que la Fermeture est nouveau pour nous - il n'y a pas la richesse de l'expérience avec Fermeture comme il est avec YUI. Donc je ne pense pas que vous devriez trouver une irrésistible dans le monde réel arguments de pourquoi utiliser la Fermeture sur la base des expériences avec elle tout simplement parce que c'est nouveau.

Ce n'est pas à dire que vous ne devriez pas utiliser de Fermeture....juste mon tour sur manière de dire, je ne pense pas qu'il y a une réponse à cela jusqu'à ce qu'un certain nombre de personnes ont utilisé les 2 et comparés entre eux.

Edit: Il ya un couple de premières comparaisons, en disant: Fermeture n'donner une amélioration: http://blog.feedly.com/2009/11/06/google-closure-vs-yui-min/
http://news.ycombinator.com/item?id=924426

Modifier: Utile de garder un oeil sur la liste des problèmes de la Fermeture: http://code.google.com/p/closure-compiler/issues/list

14voto

Michael Points 508

À partir de ces comparaisons que j'ai vu, la Fermeture semble être le gagnant clair dans le plan de la réduction de la taille du fichier. Cet article utilise trois populaire bibliothèques JS (jQuery, Prototype, MooTools) pour comparer la compression entre YUI Compressor et de la Fermeture du Compilateur: http://www.bloggingdeveloper.com/post/Closure-Compiler-vs-YUI-Compressor-Comparing-the-Javascript-Compression-Tools.aspx

Fermeture vient en tête dans chacun des tests, en particulier dans son mode avancé, où il "réduit la taille du code, de 20 à 25% de plus que YUI Compressor, en fournissant près de 60% de compression."

10voto

mckoss Points 2630

La fermeture peut être utilisé dans le mode Simple ou le mode Avancé. Le mode Simple est assez sûr pour la plupart du code JavaScript, il ne renomme les variables locales des fonctions pour obtenir de plus amples compression.

Le mode avancé est beaucoup plus agressif. Il va renommer clés dans les littéraux d'objet, et dans la ligne des appels de fonction si l'on peut déterminer qu'ils retournent des valeurs simples, sans effets secondaires.

Par exemple:

function Foo()
{
  return "hello";
}

alert(Foo());

traduit de:

alert("hello");

Et ce code:

var o = {First: "Mike", Last: "Koss"};
alert(o);

traduit de:

alert({a:"Mike",b:"Koss"});

Vous pouvez empêcher l'Avancée en mode de modification de valeurs de clé dans l'objet littéraux, en citant des noms comme ceci:

{'First': "Mike", 'Last': "Koss"}

Vous pouvez essayer ces et d'autres exemples chez google interactive Compilateur de Fermeture de site.

7voto

Kevin Hakanson Points 15498

Ressemble jQuery 1.5 vient de s'installer à UglifyJS:

En outre, grâce à cet interrupteur, nous avons déplacé à l'aide de UglifyJS de l' Google Closure Compiler. Nous avons vu certains solides de taille de fichier des améliorations en cours d'utilisation, donc nous sommes tout à fait heureux avec le commutateur.

5voto

Maiku Mori Points 4329

Je pense que cela dépend de votre code. Si vous voulez compiler votre propre code, alors je pense qu'il vaut la peine de patcher le code pour qu'il fonctionne avec Fermeture Compilateur (certaines choses peuvent sembler un peu bizarre au début). Je crois Fermeture Compilateur va bientôt être le premier choix pour de tels emplois, et il sera également vous rendre à ranger votre code un peu et de maintenir la cohérence de style (bien sûr cela dépend de vos préférences, vous pourriez haïr certaines pièces, je fais :P ).

Si vous dépendez d'autres bibliothèques, à mon avis, vous devriez attendre un peu jusqu'à ce qu'ils libèrent le Compilateur de Fermeture des versions compatibles. Il ne devrait pas prendre beaucoup de temps pour la plupart des bibliothèques populaires. Et peut-être vous pouvez fournir des correctifs pour les "pas-si-active" les bibliothèques que vous utilisez vous-même.

Je parle de la Compilation Avancée mode ici, la Simple Compilation de mode comme certains l'ont souligné, c'est assez sûr à utiliser.

Et voici un autre avis - Google Fermeture ? Je ne suis Pas Impressionné. C'est peut-être un peu trop sévère, mais agréable à lire. Je suppose que seul le temps permettra de dire lequel est le mieux =)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X