Dezember 2012 Archive

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:

 

Es ist wieder so weit - Perl Adventskalender 2012 sind online:

Dann gibt auch noch sysadvent, ein Adventskalender für Sysadmins, der auch den ein oder anderen Beitrag mit Bezug auf Perl bietet.

Siehe auch:

Perl-News: Advent 2012 - viel Lesestoff

Über dieses Archiv

Diese Seite enthält alle Einträge von Perl HowTo von neu nach alt.

November 2012 ist das vorherige Archiv.

Februar 2013 ist das nächste Archiv.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.

Blog Roll

Powered by

Powered by Movable Type 5.2.10

Creative Commons-Lizenz

Creative Commons License
Dieses Weblog steht unter einer Creative Commons-Lizenz.