Минифицирует JavaScript при помощи Terser — убирает комментарии и пробелы, сокращает имена локальных переменных и упрощает выражения — либо, наоборот, возвращает минифицированному коду читаемый вид. Terser — настоящий парсер, поэтому современный синтаксис (стрелочные функции, классы, опциональная цепочка) обрабатывается корректно, а при синтаксической ошибке выводится понятное сообщение вместо испорченного результата.
Чем минификация отличается от форматирования?
Минификация уменьшает ваш JavaScript до наименьшего работающего размера — удаляет комментарии и пробельные символы, сокращает имена локальных переменных и упрощает выражения. Она работает на базе Terser, настоящего парсера JavaScript, поэтому современный синтаксис (стрелочные функции, шаблонные строки, классы, опциональная цепочка) обрабатывается корректно, а не портится наивной заменой текста; если в вашем коде есть синтаксическая ошибка, вы получите понятное сообщение с указанием на неё. Форматирование делает обратное — заново расставляет отступы в минифицированном или неаккуратном коде, чтобы он снова стал читаемым.
Как пользоваться JavaScript-минификатором
- Вставьте — вставьте JavaScript, который нужно минифицировать или отформатировать, в верхнее поле ввода.
- Выберите отступ — 2 пробела, 4 пробела или табуляцию (применяется только к результату форматирования и не влияет на минификацию).
- Запустите — нажмите кнопку «Минифицировать» или «Форматировать». При первом нажатии «Минифицировать» библиотека Terser один раз подгружается, после чего выполняется обработка.
- Скопируйте — посмотрите на индикатор уменьшения размера и нажмите «Копировать», чтобы поместить результат в буфер обмена.
Безопасно ли минифицируется современный синтаксис (стрелочные функции, классы и т.д.)?
Да. Минификация выполняется настоящим парсером JavaScript Terser, поэтому он корректно понимает и обрабатывает современный синтаксис ES: стрелочные функции, шаблонные строки, классы, опциональную цепочку и деструктуризацию. Регулярные выражения и похожий на комментарий текст внутри строк — то, что сломалось бы при простой замене текста, — сохраняются без изменений.
Меняет ли минификация поведение кода?
Нет. Terser выполняет только преобразования, сохраняющие поведение: сокращение имён локальных переменных, удаление мёртвого кода и упрощение выражений производятся безопасно, так что результат остаётся тем же. При этом идентификаторы, доступные извне, — имена глобальных переменных и функций — не переименовываются произвольно, поскольку на них может ссылаться другой код.
Что происходит при синтаксической ошибке?
Поскольку Terser действительно парсит код, при наличии синтаксической ошибки — например, несовпадения скобок или недопустимого токена — минификация прерывается, и показывается понятное сообщение с указанием места ошибки (строки и столбца). Вместо того чтобы молча выдать неверный результат, инструмент сообщает, что нужно исправить: поправьте указанное место и попробуйте снова.
Загружается ли мой код? Почему при первой минификации небольшая пауза?
Ничего не загружается — всё выполняется в вашем браузере. Минификатор Terser — большая библиотека, поэтому, чтобы страница загружалась быстро, она подгружается только при первом нажатии кнопки Минифицировать (один раз вы можете увидеть короткую паузу «Минификация…»); после этого она кэшируется. Форматирование выполняется мгновенно. По завершении индикатор размера показывает, сколько байт сэкономила минификация, а кнопка «Копировать» помещает результат в буфер обмена.