Es beginnt mit einer kleinen, überschaubaren JavaScript-Datei für eine Webanwendung. Nach und nach packt man hier noch eine Funktion dazu, packt dort noch etwas dazu und schon wird die Datei länger und länger. Natürlich soll der Code auch im Nachhinein noch lesbar und verständlich sein, also verwendet man sprechende (lange) Variablen- und Funktionsnamen und schmückt seinen Code mit Leerzeilen und Einrückungen.
Wenn das Script aber letztendlich auf dem Produktiv-System laufen soll, dann benötigt man die (Menschen-) Lesbarkeit nicht mehr. Denn einerseits bläht das die Dateigröße nur unnötig auf und andererseits möchte man vielleicht auch nicht unbedingt, dass jeder den Code auf Anhieb lesen (und abkupfern) kann. Also sucht man sich einen geeigneten JavaScript Kompressor, welcher meine Datei so gut wie möglich komprimiert.
In einem Blog stieß ich auf eine kleine Sammlung an Möglichkeiten zur JavaScript Komprimierung. Am meisten sagte mir dort der Closure Compiler von Google zu. Denn in dem Blog-Eintrag komprimierte dieser Compiler in einem Mini-Test am besten. Außerdem kennt man Google und ich vertraue auch auf deren Technik-Verständnis und -Können.
Wie funktioniert der Google Closure Compiler?
Auf der Seite des Google Closure Compilers kann man sich unter dem Punkt „Download the Application“ die neueste Version des Compilers herunterladen. Anschließend entpackt man die Datei in ein Verzeichnis seiner Wahl (und legt dort seine zu komprimierende JavaScript-Datei mit dazu).
Nun wechselt man mit der Kommandozeile in jenes Verzeichnis und kann mit folgendem Befehl seinen Code komprimieren:
java -jar compiler.jar --js meinedatei.js --js_output_file meinedatei-compiled.js
Die Ausgangsdatei „meinedatei.js“ kann auch als absoluter Pfad angegeben werden. „meinedatei-compiled.js“ gibt den Namen der neuen komprimierten Datei an.
Einschub:
Die Kommandozeile kann man unter Windows 7 öffnen, indem man auf den Start-Button von Windows klickt und im Suchfeld „cmd“ eingibt. Mit dem Befehl „cd C:\mein\tolles verzeichnis“ kann man in ein bestimmtes Verzeichnis wechseln. Liegt das Verzeichnis auf einer anderen Partition (z.B. D:), so kann man mit „d:“ vorher auf diese Partition wechseln.
Was macht der Google Closure Compiler?
Dieser Kompressor entfernt alle unnötigen Leerzeichen und Zeilenumbrüche aus dem Code. Außerdem ersetzt er alle Variablennamen durch einzelne Buchstaben (a, b, c usw.). Die Namen der Funktionen werden nicht ersetzt.
Bereits bei kleinen Dateien lohnt sich die Komprimierung. So hat der Compiler in meinem Beispiel eine kleine JavaScript-Datei von 19 KB auf 11 KB verkleinert.