CSS::Compressor - Schnelle und effiziente CSS Komprimierung
Veröffentlicht von Thomas Fahle am (Permalink)
CSS::Compressor - Perl extension for CSS minification, ein Perl-Port des bekannten Yahoo YUICompressor, bietet eine effiziente Kompression von CSS-Dateien und startet sehr viel schneller als sein Vorbild.
Das Modul CSS::Compressor wurde eigentlich für den internen Gebrauch von Booking.com entwickelt und nun als Open Source Software veröffentlicht.
Beispiel
Das folgende Beispielprogramm nimmt Dateinamen auf der Kommandozeile entgegen, liest den Inhalt der CSS-Datei mit File::Slurp in eine skalare Variable ein, komprimiert das CSS mit css_compress() und schreibt das Ergebnis in eine neue Datei.
#!/usr/bin/perl use warnings; use strict; use CSS::Compressor qw( css_compress ); use File::Slurp; my @css_files = @ARGV; foreach my $css_file (@css_files) { my $big = read_file($css_file); my $small = css_compress $big; my $out_file = $css_file; $out_file =~ s#css$#min-css#is; write_file( $out_file, $small ); }
Aufruf/Verwendung:
$ chmod 755 css.pl $ ./css.pl ./css_tests/*.css
Geschwindigkeitsvergleich
Die angepriesene deutliche Geschwindigkeitsverbesserung kann unter Linux einfach mit Bordmitteln nachgeprüft werden:
$ time ./css.pl ./css_tests/*.css $ time yui-compressor -o '.css$:-min.css' ./css_tests/*.css
Auf meinen Testservern (Ubuntu 12.04) läuft CSS::Compressor 30 bis 40% schneller als YUICompressor.
Siehe auch:
- CSS::Compressor - Perl extension for CSS minification
- Efficient CSS Compression in Perl
- CSS::Packer - Another CSS minifier
- YUIcompressor project homepage
- YUIcompressor source repository
- Ladezeit von Websites mit JavaScript::Minifier verbessern