JSJuicer, yet another JS packer

March 9th, 2007

Adrian Johnston viens de nous concocter JSJuicer, un nouveau packer javascript à l’image du (presque) célèbre Jsmin de Douglas Crockford. C’est un soft permettant de réduire significativement la taille de vos fichiers javascript, donc de gagner en temps de chargement et en bande passante. Le procédé permet en outre de rendre le code relativement illisible, et donc de se protéger contre un plagiat éventuel. Ce soft est codé en C++, et est à utiliser en ligne de commande.

Les fonctionnalités de ce packer sont les suivantes :

  • Suppression des commentaires
  • Suppression des lignes de debug commençant par ;;;
  • Suppression des espaces et des retours chariot
  • Obfuscation du code

Malheureusement, après quelques tests, on s’aperçoit que l’obfuscation rend le JS inutilisable. On devra donc se contenter des autres options.
Après avoir “essoré” un de mes scripts perso, on passe d’une taille de 11K à une taille de 7.1K, soit un gain de 26%.
Autre essai avec un fichier plus gros, mootools v1, avec tous les plugins : on passe de 140K à 60K, soit un gain appréciable de 57%.
Dans les deux cas, si on active pas l’obfuscation, les scripts restent totalement fonctionnels, aucun bug de créé.

Si vous en voulez plus, vous pouvez ajouter une petite compression gzip.

Pour ceux que cela intéresse j’ai réalisé une édition web de JSJuicer ;-)
Elle est dispo dans la section Labs de mon site.
Cela permet d’utiliser le script sans rien avoir à downloader ou à compiler.

Tester JSJuicer Web Edition

One Response to “JSJuicer, yet another JS packer”

  1. Seb Says:

    Je l’utilise depuis la v1 sur un site Web2 bourré de JS et ca marche très bien.
    L’avantage de ce prog en C++ est que je lance facilement en batch lors des export SVN vers le serveur de prod.