Codetools
Deze drie tools parsen je broncode, herschrijven die en schrijven het resultaat weer weg. Wat ze nooit doen, is die code uitvoeren. Dat onderscheid ís hier het hele veiligheidsmodel, en het is in de code afgedwongen in plaats van in een zin beloofd.
Populaire tools
Je code wordt geparsed, nooit uitgevoerd
Een minifier moet je broncode begrijpen, en dat betekent die parsen tot een syntaxboom en die boom weer uitschrijven. Evalueren hoeft daarvoor niet, en deze minifier doet dat ook niet: er is geen eval, geen dynamische Function en geen voorbeeld dat je script uitvoert.
Dat weegt het zwaarst bij SVG. Een SVG is een uitvoerbaar document — het kan scripts, event-handlers en 'javascript:'-URL's bevatten. Die worden er allemaal uit gehaald, twee keer: één keer door de regel van de optimalisatie zelf en daarna nog een keer door een onafhankelijke ronde, want één filter met één bug is geen veiligheidsmodel.
Wat minificatie werkelijk oplevert
Witruimte weghalen en lokale namen inkorten scheelt in de regel een derde van de ruwe broncode. De rest van de winst komt vooral van de compressie op je server en niet van de minifier, dus een geminificeerd bestand dat daarna gzipt wordt is de realistische vergelijking — niet het ruwe aantal bytes.
Imports blijven onaangeroerd
Een @import in CSS blijft als tekst staan of wordt op verzoek verwijderd. Hij wordt nooit gevolgd: ophalen waar hij naar verwijst zou betekenen dat deze pagina namens jou een verzoek doet over een bestand dat je hebt geplakt, en juist dat is wat de rest van de site zo is gebouwd om niet te doen.