Some days ago, Google released the Google Closure Tools, that look very promising. I’ve yet been unable to feel particular enthusiasm for the Google Closure Library which seems like just another JavaScript (-only)? libary, something that may only be of any importance because it’s coming from Google, but who does not seem to provide anything really spectacular or new.
The Closure Compiler, however looks really good. It’s not only a simple script compressor, but also offering dead code removal and lint-like feature. I’ve been doing some testing with our main JavaScript bundle(all JavaScript code used in our test application concatenated together):
Description |
Bytes abs |
Bytes % |
js bundle |
284935 |
100,0% |
yuicompressor compressed |
126656 |
44.5% |
closure compiler compressed |
97362 |
34.2% |
js bundle gzip |
75163 |
26.4% |
yui + gzip |
42189 |
14.8% |
closure + gzip |
35432 |
12.4% |
As you can see, Closure compiler is a bit better than yuicompressor. The only downside to it is that it doesn’t support IE conditional comments. This means that above numbers a little too good for Google Closure as we are using some IE conditional comments for compatibility purposes.
The depedency management looks promising, too. So far I am using a self-brew solution for my current project at work, but I would really like to see a standard for packaging, compression and deployment for Javascript.
Vor einigen Tagen hat Google die Google Closure Tools veröffentlicht, die sehr vielversprechend scheinen. Bisher kann ich nicht viel Enthusiasmus für die Google Closure Library empfinden, die nur eine weitere JavaScript ( und nur Javascript)? Libary, die vielleicht nur deshalb beachtenswert ist, weil sie von Google kommt, die aber nichts besonders spektakuläres oder neues bietet.
Der Closure Compiler hingegen sieht sehr gut aus. Er ist nicht nur ein einfacher Script-Komprimierer, sondern bietet auch Entfernung von überflüssigen Code und Lint-artige Features. Ich habe mal einen Test mit unserem JavaScript main Bundle (der ganze JavaScript unserer Test-Applikation aneinander gehängt):
Beschreibung |
Bytes abs |
Bytes % |
js bundle |
284935 |
100,0% |
yuicompressor komprimiert |
126656 |
44.5% |
Closure Compiler komprimiert |
97362 |
34.2% |
js bundle gzip |
75163 |
26.4% |
yui + gzip |
42189 |
14.8% |
closure + gzip |
35432 |
12.4% |
Wie man sehen kann, komprimiert der Closure compiler noch ein wenig besser als yuicompressor. Der einzige Nachteil ist, dass Google Closure keine IE conditional comments unterstützt. Das bedeutet auch das die obigen Zahlen ein wenig zu gut sind für Closure Compiler, da wir aus Kompatibilitätsgründen einige IE conditional comments verwenden.
Das Abhängigkeits-Management sieht auch sehr vielversprechend aus. Wir setzen in unserem Projekt bisher eine selbst-gestrickte Lösung ein, ich würde mich aber sehr freuen, einen allgemeinen Standard zum optimieren, packen and deployen von Javascript zu sehen.