Что делает инструмент
Минификация удаляет всё, что не нужно браузеру для выполнения кода: пробелы, переносы строк, комментарии и длинные имена. Файлы меньшего размера загружаются быстрее, что улучшает время загрузки страницы и Core Web Vitals, особенно в мобильных сетях.
Этот инструмент минифицирует JavaScript с помощью Terser — минификатора, который используют webpack, Rollup и Vite, — и CSS с помощью CSSO, который ещё и реструктурирует таблицы стилей: сокращает цвета (#ffffff в #fff), убирает лишние единицы и значения (0px 0px в 0) и объединяет правила с общими селекторами или объявлениями.
Как пользоваться
- Вставьте код в поле Ввод, перетащите на него файл
.jsили.cssлибо нажмите Пример. - Выберите JavaScript или CSS.
- Для JavaScript опция Сокращать имена переменных переименовывает локальные переменные и параметры в однобуквенные. Экспортируемые и глобальные имена никогда не меняются.
- Для CSS опция Объединять повторяющиеся правила сводит вместе правила с одинаковыми объявлениями.
- Скопируйте или скачайте результат. Счётчики размера под каждым полем показывают, сколько удалось сэкономить.
Если в JavaScript есть синтаксическая ошибка, в сообщении будут строка и столбец, и к ней можно сразу перейти.
Пример
// Sum the price of every item
export function cartTotal(items, discountPercent = 0) {
const subtotal = items.reduce(function (sum, item) {
return sum + item.price * item.quantity
}, 0)
return subtotal * (1 - discountPercent / 100)
}
превращается в
export function cartTotal(t,r=0){return t.reduce(function(t,r){return t+r.price*r.quantity},0)*(1-r/100)}
Когда это пригодится
Для быстрых разовых задач: фрагмент для CDN, встроенный скрипт в HTML-письме, букмарклет или проверка того, насколько маленькой может стать библиотека. В реальном проекте минифицировать при каждой сборке должен ваш сборщик, чтобы исходники оставались читаемыми.
Частые вопросы
› Загружается ли мой код куда-нибудь?
Нет. Terser и CSSO работают внутри браузера, поэтому проприетарный исходный код никогда не покидает ваше устройство.
› Не сломает ли минификация мой JavaScript?
Terser применяет только преобразования, которые сохраняют поведение корректного кода. На код, который во время выполнения зависит от имён функций или переменных (например, через Function.name), может повлиять сокращение имён; в этом случае выключите «Сокращать имена переменных».
› Почему «Объединять повторяющиеся правила» для CSS — опция?
Объединение переносит объявления между правилами. Почти в любой таблице стилей это безопасно, но если ваш CSS зависит от точного порядка правил с одинаковой специфичностью, выключение опции гарантирует исходный порядок.
› Какие комментарии сохраняются?
При включённой опции «Сохранять лицензионные комментарии» остаются комментарии, начинающиеся с /*! или содержащие @license или @preserve, как того требует большинство open source лицензий. Все остальные комментарии удаляются.