Quel est le meilleur compresseur JavaScript disponible? Je recherche un outil qui:
- est facile à utiliser
- a un taux de compression élevé
- Produire des résultats finaux fiables (ne gâche pas le code)
javascript
compression
Ron Harlev
la source
la source
Réponses:
J'ai récemment publié UglifyJS , un compresseur JavaScript qui est écrit en JavaScript (fonctionne sur la plate-forme NodeJS Node.js , mais il peut être facilement modifié pour fonctionner sur n'importe quel moteur JavaScript, car il n'a pas besoin de composants
Node.js
internes). C'est beaucoup plus rapide que YUI Compressor et Google Closure , il compresse mieux que YUI sur tous les scripts sur lesquels je l'ai testé, et c'est plus sûr que Closure (sait gérer "eval" ou "with").Outre la suppression des espaces, UglifyJS effectue également les opérations suivantes:
foo["bar"]
enfoo.bar
autant que possiblePS: Oh, ça peut aussi «embellir». ;-)
la source
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 plate-forme NodeJS, mais peut être facilement modifié pour fonctionner sur n'importe quel moteur JavaScript.
--- Ancienne réponse ci-dessous ---
Google a publié Closure Compiler qui semble générer les plus petits fichiers à ce jour, comme on le voit ici et ici
Avant cela, les différentes options étaient les suivantes
Fondamentalement, Packer fait un meilleur travail lors de la compression initiale, mais si vous allez gzipper les fichiers avant de les envoyer sur le câble (ce que vous devriez faire), YUI Compressor obtient la plus petite taille finale.
Les tests ont été effectués sur du code jQuery btw.
@ daniel james mentionne dans le commentaire compressorrater qui montre Packer en tête du graphique dans la meilleure compression, donc je suppose que ymmv
la source
\uxxxx
littéraux par défaut .. utilisez par exemple--charset UTF-8
(si vous êtes sûr que vous en informez le navigateur d'une manière ou d'une autre)YUI Compressor est la voie à suivre. Il a un excellent taux de compression, est bien testé et est utilisé parmi de nombreux sites de premier plan et, bien, personnellement recommandé par moi.
Je l'ai utilisé pour mes projets sans une seule erreur JavaScript ou un hoquet. Et il a une belle documentation.
Je n'ai jamais utilisé ses capacités de compression CSS, mais elles existent également.La compression CSS fonctionne aussi bien.Remarque: bien que / packer / de Dean Edwards atteigne un meilleur taux de compression que YUI Compressor, j'ai rencontré quelques erreurs JavaScript lors de son utilisation.
la source
npm install packer
. (= DJ'utilise ShrinkSafe du projet Dojo - c'est exceptionnel car il utilise en fait un interpréteur JavaScript ( Rhino ) pour trouver des symboles dans le code et comprendre leur portée, etc., ce qui permet de garantir que le code fonctionnera lorsqu'il sortira le autre extrémité, par opposition à de nombreux outils de compression qui utilisent regex pour faire de même (ce qui n'est pas aussi fiable).
En fait, j'ai une tâche MSBuild dans un 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 via ShrinkSafe avant le déploiement et cela fonctionne très bien.
EDIT: Au fait, «meilleur» est ouvert au débat, puisque les critères de «meilleur» varieront 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 == mieux, ce sera insuffisant.
EDIT: Il est à noter que le compresseur YUI utilise également Rhino.
la source
Essayez JSMin , obtenez C #, Java, C et d'autres ports et facilement disponible.
la source
Si vous utilisez Packer, allez simplement loin dans l'option 'shrink variables' et gzip le code résultant. L'option base62 n'est valable que si votre serveur ne peut pas envoyer de fichiers gzippés. Packer avec 'shrink vars' réalise une meilleure compression du YUI, mais peut introduire des bogues si vous avez sauté un point-virgule quelque part.
base62 est fondamentalement le gzip d'un pauvre homme, c'est pourquoi gzipping de code base62-ed vous donne des fichiers plus gros que gzipping de code shrink-var-ed.
la source
JSMin en est un autre.
la source
la source
Voici le code source d'un HttpHandler qui fait cela, peut-être que cela vous aidera
la source
Voici un script de compresseur YUI ( Byuic ) qui trouve tous les js et css dans un chemin et les compresse / (éventuellement) les obscurcit. Agréable à intégrer dans un processus de construction.
la source
bananascript.com me donnait les meilleurs résultats.
la source
KJScompress
http://opensource.seznam.cz/KJScompress/index.html
la source
Js Crush est un bon compresseur à utiliser après avoir minifié.
la source