Інструменти для коду
Ці три інструменти розбирають ваш код, переписують його й виводять назад. Але ніколи не запускають. Уся модель безпеки тут тримається саме на цій різниці, і вона закладена в коді, а не обіцяна одним реченням.
Популярні інструменти
Ваш код розбирається, а не виконується
Мініфікатор мусить зрозуміти ваш код, тобто розібрати його в синтаксичне дерево й надрукувати це дерево назад. Обчислювати щось йому не потрібно — і цей нічого не обчислює: тут немає ані eval, ані динамічного Function, ані перегляду, який запускав би ваш скрипт.
Найбільше це важить для SVG. SVG — виконуваний документ: він може нести скрипти, обробники подій і адреси «javascript:». Усе це вилучається двічі — спершу власним правилом оптимізатора, а потім ще раз незалежним проходом, що йде слідом, бо один фільтр з однією помилкою — це не модель безпеки.
Що насправді дає мініфікація
Прибирання пробілів і скорочення локальних імен зазвичай знімає третину з необробленого коду. Більшу частину решти виграшу дає стиснення на вашому сервері, а не мініфікатор, тож реалістичне порівняння — це мініфікований файл, стиснений gzip, а не кількість байтів у сирому вигляді.
Імпорти лишаються недоторканими
Правило @import у CSS зберігається як текст або вилучається на ваш запит. За ним ніколи не переходять: завантажити те, на що воно вказує, означало б, що ця сторінка зробила запит від вашого імені через файл, який ви самі вставили, — а решта сайту побудована саме так, щоб цього не робити.