Инструменты для кода
Эти три инструмента разбирают ваш исходный код, переписывают его и выводят обратно. Чего они не делают никогда — так это не запускают его. На этом различии держится вся здешняя модель безопасности, и оно заложено в код, а не обещано одной фразой.
Популярные инструменты
Ваш код разбирается, но не выполняется
Минификатору нужно понять ваш исходник, то есть разобрать его в синтаксическое дерево и напечатать это дерево обратно. Вычислять при этом ничего не требуется, и здесь ничего не вычисляется: нет ни eval, ни динамического Function, ни предпросмотра, который запускал бы ваш скрипт.
Важнее всего это для SVG. SVG — исполняемый документ: он может нести скрипты, обработчики событий и ссылки вида javascript:. Всё это вырезается дважды: сначала собственным правилом оптимизатора, а потом ещё раз независимым проходом, который идёт следом, — потому что один фильтр с одной ошибкой моделью безопасности не является.
Что на самом деле экономит минификация
Удаление пробелов и сокращение локальных имён обычно снимает треть с сырого исходника. Большая часть оставшегося выигрыша приходит от сжатия на вашем сервере, а не от минификатора, поэтому честное сравнение — это минифицированный файл после gzip, а не количество байт в сыром виде.
Импорты остаются нетронутыми
Директива @import в CSS сохраняется как текст или удаляется по вашему указанию. Переходов по ней не происходит никогда: загрузить то, на что она указывает, значило бы, что эта страница сделала запрос от вашего имени из-за файла, который вы в неё вставили, — а весь остальной сайт построен ровно на том, чтобы так не делать.