Kodeværktøjer
De tre værktøjer her fortolker din kildekode, skriver den om og skriver den ud igen. Det, de aldrig gør, er at køre den. Den forskel er hele sikkerhedsmodellen her, og den er håndhævet i koden frem for lovet i en sætning.
Populære værktøjer
Din kode fortolkes, men køres aldrig
En minificering skal forstå din kildekode, og det betyder, at den fortolkes til et syntakstræ, som skrives ud igen. Den behøver ikke at evaluere noget, og det gør denne her ikke: der er ingen eval, ingen dynamisk Function og ingen forhåndsvisning, der kører dit script.
Det betyder mest for SVG. En SVG er et eksekverbart dokument — den kan bære scripts, hændelseshåndterere og javascript:-adresser. Alle sammen fjernes, to gange: én gang af optimeringens egen regel og én gang mere af et uafhængigt gennemløb bagefter, for ét enkelt filter med én enkelt fejl er ikke en sikkerhedsmodel.
Hvad minificering faktisk sparer
At fjerne mellemrum og forkorte lokale navne tager typisk en tredjedel af den rå kildekode. Størstedelen af den resterende gevinst kommer fra din servers komprimering, ikke fra minificeringen, så en minificeret fil, der derefter gzippes, er den realistiske sammenligning — ikke antallet af rå bytes.
Imports lades i fred
En @import i CSS bevares som tekst eller fjernes efter ønske. Den følges aldrig: at hente det, den peger på, ville betyde, at denne side lavede en forespørgsel på dine vegne om en fil, du selv har indsat — og det er præcis det, resten af siden er bygget til ikke at gøre.