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:

 

Weitere Posts