Quel est le meilleur compresseur JavaScript disponible ? Je suis à la recherche d'un outil qui :
- est facile à utiliser
- a un taux de compression élevé
- Produire des résultats finaux fiables (ne pas perturber le code)
Quel est le meilleur compresseur JavaScript disponible ? Je suis à la recherche d'un outil qui :
J'ai récemment publié UglifyJS un compresseur écrit en JavaScript (fonctionnant sur le système NodeJS). Node.js mais il peut être facilement modifié pour fonctionner sur n'importe quel moteur JavaScript, puisqu'il n'a besoin d'aucune Node.js
internes). C'est beaucoup plus rapide que les deux Compresseur YUI y Fermeture de Google il compresse mieux que YUI sur tous les scripts sur lesquels je l'ai testé, et il est plus sûr que Closure (sait gérer les "eval" ou "with").
Outre la suppression des espaces blancs, UglifyJS effectue également les opérations suivantes :
foo["bar"]
en foo.bar
si possiblePS : Oh, il peut aussi "embellir" ;-)
Revisiter cette question quelques années plus tard, UglifyJS semble être la meilleure option pour le moment.
Comme indiqué ci-dessous, il fonctionne sur la plateforme NodeJS, mais peut être facilement modifié pour fonctionner sur n'importe quel moteur JavaScript.
--- Ancienne réponse ci-dessous ---
Google a publié Compilateur de fermetures qui semble générer les plus petits fichiers jusqu'à présent, comme on peut le voir. aquí y aquí
Auparavant, les différentes options sont les suivants
En gros, Packer fait un meilleur travail de compression initiale, mais si vous avez l'intention de gzip les fichiers avant de les envoyer sur le fil (ce que vous devriez faire) Compresseur YUI obtient la plus petite taille finale.
Les tests ont été effectués sur du code jQuery.
@ daniel james mentionne dans le commentaire Réchauffeur de compresseur qui montre que Packer est en tête du classement pour la meilleure compression, donc je suppose que ymmv.
Compresseur YUI est le meilleur choix. Il a un excellent taux de compression, est bien testé, est utilisé par de nombreux sites de premier plan et est personnellement recommandé par moi.
Je l'ai utilisé pour mes projets sans une seule erreur JavaScript ou hoquet. Et il a une bonne documentation.
Je n'ai jamais utilisé ses capacités de compression CSS, mais elles existent aussi. La compression CSS fonctionne tout aussi bien.
Note : Bien que Dean Edwards / emballeuse / atteint un meilleur taux de compression que YUI Compressor, j'ai rencontré quelques erreurs JavaScript en l'utilisant.
J'utilise ShrinkSafe du projet Dojo - il est exceptionnel car il utilise en fait un interpréteur JavaScript ( Rhino ) pour trouver les symboles dans le code et comprendre leur portée, etc., ce qui permet de s'assurer que le code fonctionnera à l'autre bout, contrairement à de nombreux outils de compression qui utilisent des expressions rationnelles pour faire la même chose (ce qui n'est pas aussi fiable).
J'ai actuellement une tâche MSBuild dans un fichier Projet de déploiement Web dans ma solution Visual Studio actuelle qui exécute un script qui à son tour exécute tous les fichiers JS de la solution à travers ShrinkSafe avant que nous déployions et cela fonctionne assez bien.
EDITAR: Soit dit en passant, le terme "meilleur" est sujet à débat, car ses critères varient en fonction des besoins du projet. Personnellement, je pense que ShrinkSafe est un bon équilibre ; pour certaines personnes qui pensent que la plus petite taille == le mieux, ce sera insuffisant.
EDITAR: Il convient de noter que le compresseur YUI utilise également Rhino.
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.