JSCompress: Stapelkomprimierung für Frontend-Skripte und Styles
Zusammenfassung
JSCompress komprimiert und bündelt JavaScript und CSS im Stapel, ohne Editor: Ordner wählen, Tiefe und Dateitypen bestimmen, und es laufen der YUI Compressor für Styles und der Closure Compiler für Skripte.
Empfehlen- Name
- JSCompress
- Version
- 20221028
- Preis
- Kostenlos
- Open Source
- Proprietär
- Webseite
- https://www.jscompress.cn/
- Aktualisiert
- 2026-10-06 12:46
Ein Kompressor für Ordner, nicht für Dateien
JSCompress ist ein kostenloses Werkzeug, das Frontend-Ressourcen im Stapel komprimiert, verschleiert und zusammenführt. Das interessante Wort in diesem Satz ist »im Stapel«. Eine Datei zu komprimieren ist ein gelöstes Problem mit einem Dutzend Lösungen; dreihundert Dateien nach jeder Änderung konsistent komprimiert zu halten, ist der Teil, der in einem echten Projekt tatsächlich schiefgeht.
Das Programm läuft eigenständig und hängt sich weder in einen Editor noch in ein Build-Skript. Das ist eine bewusste Position: Ein Ordner mit Skripten und Styles lässt sich auf einer Maschine komprimieren, die überhaupt keine Entwicklungsumgebung hat – und das ist oft genau die Maschine, auf der der Release zusammengestellt wird.

Zwei Engines unter einer Oberfläche
Für Styles arbeitet der YUI Compressor for .Net, für Skripte der Google Closure Compiler. Zwei Engines statt einer sind keine Unentschlossenheit – die beiden Sprachen brauchen unterschiedliche Behandlung. CSS zu komprimieren dreht sich vor allem um Leerraum, Kommentare und Redundanz, und das Ergebnis muss ein Stylesheet bleiben, das ein Browser zerlegen kann. JavaScript zu komprimieren ist ein anderes Problem: Über den Leerraum hinaus lassen sich Bezeichner kürzen und nicht erreichbarer Code entfernen, und das Ergebnis muss sich exakt wie vorher verhalten – eine deutlich strengere Anforderung, als es aussieht.
Etablierte Engines zu verwenden, ist auch der Weg, an dem üblichen Scheitern selbstgebauter Minifier vorbeizukommen: Ein Werkzeug, das nur Zeilenumbrüche entfernt, ist schnell geschrieben und ruiniert den ersten regulären Ausdruck, auf den es trifft.


Der Ablauf besteht aus vier Entscheidungen
Die Einstellungen werden einmal pro Dateityp in einem Dialog gewählt: welcher Modus für Skripte, für Styles, für Bilder und für die Präprozessor-Blätter gilt. Danach beginnt die Arbeit bei einem Ordner: Rechtsklick darauf, und die Dateien dieses Verzeichnisses werden komprimiert.
Zwei Fragen bleiben, und beide zählen. Die erste ist die Tiefe – nur die Dateien direkt im Ordner oder alles darunter mit. Die zweite ist, welche Dateitypen in diesem Lauf dazugehören. Dann startet die Komprimierung, und ein Ordner, der sonst einen Nachmittag einzelner Speichervorgänge gekostet hätte, ist in der Zeit erledigt, die das Lesen des Protokolls braucht.



Kodierungen, wo Stapelwerkzeuge scheitern
Alles, was Quelldateien neu schreibt, muss wissen, wie sie geschrieben wurden. Ein über Jahre gewachsener Ordner enthält Dateien in mehreren Kodierungen, und ein Kompressor, der eine davon annimmt, zerstört jede Zeichenkette in den anderen. Die Erkennung ist unspektakulär und sie ist der Unterschied zwischen einem Lauf, dem man trauen kann, und einem, der danach Datei für Datei geprüft werden muss.
Dieselbe Sorge gilt für das Zusammenführen: Mehrere Skripte zu einer Datei zu verbinden funktioniert nur, wenn die letzte Zeile des einen und die erste Zeile des nächsten nicht zu etwas verschmelzen, das keiner von beiden gesagt hat.

Wenn es einen Fehler meldet, hat es meist recht
Eine bereits komprimierte Datei zu komprimieren kann in einem Fehler enden statt in einer kleineren Datei. Das ist kein Fehler, den man umgehen müsste: Minifizierter Code ist nicht mehr der Quelltext, den die Engine erwartet, und dieselbe Umformung ein zweites Mal anzuwenden kann Verhalten ändern oder Ausgabe erzeugen, die nicht mehr zerlegbar ist.
Die praktische Regel ist die, um die das Werkzeug gebaut ist: Quellen behalten, in einen anderen Ort komprimieren und die komprimierte Ausgabe als Produkt behandeln und nicht als etwas, das man weiter bearbeitet.


Wohin es passt
JSCompress ist für den Fall gedacht, dass das Frontend von Hand zusammengesetzt wird oder von einem Build, den jemand anderes pflegt und niemand anfassen will. Es ist ein Stapelwerkzeug mit Fenster, kein Build-System: Es überwacht keine Dateien, löst keine Abhängigkeiten auf und ersetzt keinen Task-Runner. Es nimmt ein Verzeichnis und gibt ein kleineres zurück, mit einem Protokoll darüber, was passiert ist – und das ist oft die vollständige Anforderung.