Narzędzia do kodu
Te trzy narzędzia parsują Twój kod źródłowy, przepisują go i wypisują z powrotem. Nigdy go natomiast nie uruchamiają. Ta różnica to tutaj cały model bezpieczeństwa — wymuszony w kodzie, a nie obiecany w zdaniu.
Popularne narzędzia
Twój kod jest parsowany, nigdy uruchamiany
Minifikator musi zrozumieć Twój kod, czyli sparsować go do drzewa składniowego i wypisać to drzewo z powrotem. Niczego nie musi przy tym wykonywać i ten tego nie robi: nie ma tu eval, nie ma dynamicznego Function ani podglądu, który uruchamiałby Twój skrypt.
Najbardziej liczy się to przy SVG. SVG jest dokumentem wykonywalnym — może nieść skrypty, procedury zdarzeń i adresy javascript:. Każde z nich jest usuwane dwukrotnie: raz przez własną regułę optymalizatora, a drugi raz przez niezależny przebieg, który idzie zaraz po niej, bo pojedynczy filtr z pojedynczym błędem to jeszcze nie model bezpieczeństwa.
Ile naprawdę oszczędza minifikacja
Usunięcie białych znaków i skrócenie nazw lokalnych zdejmuje zwykle jedną trzecią surowego źródła. Większość dalszego zysku daje kompresja na Twoim serwerze, a nie minifikator, więc realnym punktem odniesienia jest plik zminifikowany, a potem spakowany gzipem — nie liczba surowych bajtów.
Importy zostają nietknięte
Reguła @import w CSS zostaje zachowana jako tekst albo usunięta na życzenie. Nigdy nie jest rozwijana: pobranie tego, na co wskazuje, oznaczałoby, że ta strona wysłała w Twoim imieniu żądanie dotyczące pliku wklejonego tutaj przez Ciebie — a cała reszta serwisu jest zbudowana właśnie po to, żeby tego nie robić.