Strumenti codice
Questi tre strumenti analizzano il tuo sorgente, lo riscrivono e lo stampano di nuovo. Quello che non fanno mai è eseguirlo. In quella distinzione sta tutto il modello di sicurezza di questa sezione, ed è applicata nel codice invece che promessa in una frase.
Strumenti più usati
Il tuo codice viene analizzato, mai eseguito
Un minificatore deve capire il tuo sorgente, cioè analizzarlo in un albero sintattico e ristamparlo da quell'albero. Non ha bisogno di valutare nulla, e questo non lo fa: niente eval, niente Function dinamica, nessuna anteprima che esegua il tuo script.
Vale soprattutto per l'SVG. Un SVG è un documento eseguibile: può contenere script, gestori di eventi e URL «javascript:». Ognuno di questi viene rimosso due volte, una dalla regola dell'ottimizzatore stesso e una da un passaggio indipendente che gira dopo, perché un solo filtro con un solo bug non è un modello di sicurezza.
Quanto fa risparmiare davvero la minificazione
Togliere gli spazi e accorciare i nomi locali toglie di norma un terzo del sorgente grezzo. Il resto del guadagno arriva soprattutto dalla compressione del tuo server, non dal minificatore: il confronto realistico è quindi un file minificato e poi compresso con gzip, non il conteggio dei byte grezzi.
Gli import restano dove sono
Un @import nel CSS viene conservato come testo, oppure rimosso se lo chiedi. Non viene mai seguito: scaricare ciò a cui punta significherebbe che questa pagina ha fatto una richiesta per conto tuo a proposito di un file che hai incollato, cioè esattamente ciò che il resto del sito è costruito per non fare.