JSCompress : compresser par lots les scripts et styles du front-end
Résumé
JSCompress compresse et fusionne JavaScript et CSS par lots sans éditeur : on choisit un dossier, une profondeur et des types de fichiers, et le YUI Compressor traite les styles tandis que le Closure Compiler traite les scripts.
Recommander- Nom
- JSCompress
- Version
- 20221028
- Tarif
- Gratuit
- Open source
- Propriétaire
- Mis à jour
- 2026-10-06 12:46
Un compresseur pour des dossiers, pas pour des fichiers
JSCompress est un utilitaire gratuit qui compresse, obscurcit et fusionne des ressources front-end par lots. Le mot intéressant dans cette phrase est « par lots ». Compresser un fichier est un problème résolu avec une douzaine de solutions ; garder trois cents fichiers compressés, de façon cohérente, après chaque modification, voilà la partie qui échoue vraiment dans un projet réel.
Le programme fonctionne de façon autonome et ne s'accroche ni à un éditeur ni à un script de build. C'est une position assumée : un dossier de scripts et de styles peut être compressé sur une machine qui n'a aucun environnement de développement — et c'est souvent cette machine-là qui assemble la version de diffusion.

Deux moteurs sous une seule interface
Pour les styles, il utilise le YUI Compressor for .Net ; pour les scripts, le Google Closure Compiler. Deux moteurs plutôt qu'un ne sont pas une indécision : les deux langages demandent des traitements différents. Compresser du CSS concerne surtout les espaces, les commentaires et les redondances, et le résultat doit rester une feuille de style qu'un navigateur sait analyser. Compresser du JavaScript est un autre problème : au-delà des espaces, les identifiants peuvent être raccourcis et le code inatteignable supprimé, et le résultat doit se comporter exactement comme avant — une exigence bien plus forte qu'elle n'en a l'air.
Utiliser des moteurs établis est aussi la manière d'éviter l'échec typique des minifieurs faits maison : un outil qui ne fait que retirer les sauts de ligne s'écrit vite et casse la première expression régulière qu'il rencontre.


Le déroulement tient en quatre décisions
Les réglages se choisissent une fois par type de fichier, dans une boîte de dialogue : quel mode s'applique aux scripts, aux styles, aux images et aux feuilles de préprocesseur. Ensuite, le travail part d'un dossier : un clic droit dessus, et les fichiers de ce répertoire sont compressés.
Deux questions restent, et les deux comptent. La première est la profondeur — seulement les fichiers directement dans le dossier, ou tout ce qui se trouve en dessous. La seconde est de savoir quels types de fichiers entrent dans cette passe. Puis la compression démarre, et un dossier qui aurait coûté un après-midi d'enregistrements un par un est terminé dans le temps de lire le journal.



Les encodages, là où les outils par lots échouent
Tout ce qui réécrit des fichiers source doit savoir comment ils ont été écrits. Un dossier constitué sur des années contient des fichiers dans plusieurs encodages, et un compresseur qui en suppose un seul détruit chaque chaîne des autres. La détection n'a rien de spectaculaire, et c'est elle qui fait la différence entre une passe à laquelle on peut se fier et une passe qu'il faudra vérifier fichier par fichier ensuite.
La même préoccupation vaut pour la fusion : réunir plusieurs scripts en un seul fichier ne fonctionne que si la dernière ligne de l'un et la première ligne du suivant ne se combinent pas en quelque chose qu'aucun des deux n'a dit.

Quand il signale un échec, il a généralement raison
Compresser un fichier déjà compressé peut se terminer par une erreur plutôt que par un fichier plus petit. Ce n'est pas un défaut à contourner : le code minifié n'est plus la source que le moteur attend, et appliquer deux fois la même transformation peut changer le comportement ou produire une sortie qui ne s'analyse plus.
La règle pratique est celle autour de laquelle l'outil est construit : garder les sources, compresser ailleurs, et traiter la sortie compressée comme un produit et non comme quelque chose à retoucher.


Où il trouve sa place
JSCompress s'adresse au cas où le front-end est assemblé à la main, ou par un build que quelqu'un d'autre maintient et que personne ne veut toucher. C'est un outil par lots avec une fenêtre, pas un système de build : il ne surveille pas les fichiers, ne résout pas les dépendances et ne remplace pas un lanceur de tâches. Il prend un répertoire et en rend un plus petit, avec un journal qui dit ce qui s'est passé — et c'est souvent toute l'exigence.