Štítek YUI Compressor ×

Android Apache Ant Chrome CSS Data Databáze Desocializace Download ESRI Facebook Flash GIS Google Google Maps GPS Hardware HTML Internet iOS iPhone Jak na to Javascript jQuery JS mac mapa Maps Mapy Mashup Mobile MySQL Nezařazeno PHP Programování Silverlight Software Studentská tvorba Test Video Všechno možné Webdesign Weblbinky Windows Wordpress Zajímavosti

18. 1. 2011

Apache ANT a YUI Compressor

Minimalizace kódu je proces, při kterém se odstraní z kódu veškerá vata – komentáře, zbytečné mezery, odsazení atd. Výsledný minimalizovaný kód je menší a rychleji se přenese do prohlížeče. Pro minimalizaci kódu existuje řada nástrojů – některé se soustředí na Javascript, jiné zase umí minimalizovat CSS nebo HTML.

Můj oblíbenec YUI compressor zvládne minimalizovat CSS a Javascript – je naprogramovaný v Javě a spouští se přes příkazovou řádku.

Následující příkaz vytvoří nový soubor sample.min.css, který bude obsahovat minimalizovaný kód ze souboru sample.css:

java -jar yuicompressor-2.4.2.jar -o sample.min.css sample.css

Celý proces minimalizace kódu je možné automatizovat prostřednictvím nástroje Apache ANT o kterém jsem psal minule.

Následující sekvence úloh vytvoří ve složce build/wp-content/themes/omdesign minimalizované verze všech CSS souborů, které pro změnu najde ve složce wp-content/themes/omdesign.

<target name="css.minify">
  <mkdir dir="build/wp-content/themes/omdesign" />
  <apply executable="java" parallel="false" verbose="true" failonerror="true" dest="build/wp-content/themes/omdesign">
    <fileset dir="wp-content/themes/omdesign">
      <include name="*.css" />
    </fileset>
    <arg line="-jar"/>
    <arg path="c:\Program Files\yuicompressor-2.4.2\build\yuicompressor-2.4.2.jar"/>
    <arg line="--line-break 0"/>
    <srcfile/>
    <arg line="-o"/>
    <mapper type="glob" from="*.css" to="*.css"/>
    <targetfile/>
  </apply>
</target>

Je důležité dobře nastavit všechny cesty, jinak se úloha nespustí. Celou sekvenci je možné vylepšit změnou příkazu mapper, díky které budou nové soubory opatřeny o příponu min:

<mapper type="glob" from="*.css" to="*.min.css"/>

Všimněte si, že jednotlivé přepínače jsou zasílány do YUI compressoru pomocí příkazu arg. Na závěr alternativní sekvence pro Javascript:

<target name="js.minify">
  <mkdir dir="build/wp-content/themes/omdesign/js" />
  <apply executable="java" parallel="false" verbose="true" failonerror="true" dest="build/wp-content/themes/omdesign/js">
    <fileset dir="wp-content/themes/omdesign/js">
      <include name="*.js" />
    </fileset>
    <arg line="-jar"/>
    <arg path="c:\Program Files\yuicompressor-2.4.2\build\yuicompressor-2.4.2.jar"/>
    <srcfile/>
    <arg value="--charset" />
    <arg value="UTF-8" />
    <arg line="-o"/>
    <mapper type="glob" from="*.js" to="*.js"/>
    <targetfile/>
  </apply>
</target>
#apache-ant, #webdesign, #yui-compressor