Перейти до вмісту
FileSlimmer
Інструменти
Посібники

Інструменти для коду

Ці три інструменти розбирають ваш код, переписують його й виводять назад. Але ніколи не запускають. Уся модель безпеки тут тримається саме на цій різниці, і вона закладена в коді, а не обіцяна одним реченням.

Ваш код розбирається, а не виконується

Мініфікатор мусить зрозуміти ваш код, тобто розібрати його в синтаксичне дерево й надрукувати це дерево назад. Обчислювати щось йому не потрібно — і цей нічого не обчислює: тут немає ані eval, ані динамічного Function, ані перегляду, який запускав би ваш скрипт.

Найбільше це важить для SVG. SVG — виконуваний документ: він може нести скрипти, обробники подій і адреси «javascript:». Усе це вилучається двічі — спершу власним правилом оптимізатора, а потім ще раз незалежним проходом, що йде слідом, бо один фільтр з однією помилкою — це не модель безпеки.

Що насправді дає мініфікація

Прибирання пробілів і скорочення локальних імен зазвичай знімає третину з необробленого коду. Більшу частину решти виграшу дає стиснення на вашому сервері, а не мініфікатор, тож реалістичне порівняння — це мініфікований файл, стиснений gzip, а не кількість байтів у сирому вигляді.

Імпорти лишаються недоторканими

Правило @import у CSS зберігається як текст або вилучається на ваш запит. За ним ніколи не переходять: завантажити те, на що воно вказує, означало б, що ця сторінка зробила запит від вашого імені через файл, який ви самі вставили, — а решта сайту побудована саме так, щоб цього не робити.

Посібники

Посібники