Minify

From A-Eskwiki
Jump to: navigation, search

Alle javascriptbestanden (.js) en css-bestanden (.css) worden op de A--Eskwadraatwebsite geminified. Dit houdt in dat sommige bestanden worden samengevoegd en dat de bestanden korter gemaakt worden door bv witregels weg te halen of door namen van variabele korter te maken.

De minification wordt gedaan door de closure-compiler-*versie*.jar voor de js en minify-css.php voor de css. Beide staan in de map compilers. Om dat fatsoenlijk te gebruiken is er een bash-script omheen geschreven wat alles meteen ook goed ordend. Dit script heet minify (verrassend) en kan worden uitgevoerd door in de terminal

./minify

uit te voeren. Om alle opties van het minify-script te zien doe je in de terminal

./minify help


Alles wat geminified wordt, wordt in de map Minified in www/ geplaats. In de map Minified staan de mappen css (voor de css-bestanden) en js (voor de javascript-bestanden). Ook is er een symlink naar de bootstrap-fonts. Dit om ervoor te zorgen dat de bootstrap-css-bestanden in de css-map de fonts kunnen lezen (want die paden werken relatief). In de mappen css en js vind je twee soorten bestanden: de normale bestanden en de minified bestanden. De minified bestanden hebben een extensie .min.js of .min.css. Op je debug-website is het al zo ingesteld dat niet de minified bestanden gebruikt worden maar de normale (wel in de map Minified) zodat je makkelijker kan debuggen.

Verder zijn er nog twee speciale minified bestanden; dit zijn a-eskwadraat.min.js en a-eskwadraat.min.css. Deze bestanden bestaan uit een aantal andere js- of css-bestanden die zijn samengevoegd en dan zijn geminified. Deze bestanden worden standaard op alle pagina's van de website ingeladen. Dit heeft als voordeel dat je maar 1 bestand hoeft in te laden per request.

In de code van het minify-script zijn dus de volgende variabelen van belang:

CSS_CONCAT_FILES
CSS_FILES
JS_CONCAT_FILES
JS_FILES

Alles wat bij de *_CONCAT_FILES staat wordt samengevoegd in 1 bestand (de a-eskwadraat.min.(css/js)) en de rest van de bestanden wordt gewoon geminified.