JavaScript-минификатор
Вставьте JavaScript, чтобы сжать его с помощью Terser: мёртвый код удаляется, имена сокращаются, пробелы исчезают. Синтаксические ошибки указывают точную строку и столбец.
Работает в браузереБез регистрацииНичего не загружается
Как пользоваться: JavaScript-минификатор
- Вставьте JavaScript или откройте файл
.js. - Выберите опции: Сокращать имена укорачивает локальные переменные, Сжимать переписывает код в меньший эквивалент, ES-модуль включает
import/exportверхнего уровня. - Выберите целевую версию ECMAScript, которую поддерживают браузеры ваших пользователей. ES2020 безопасна для всех evergreen-браузеров.
- Проверьте размер, экономию и оценку gzip под результатом.
- Скопируйте минифицированный код или скачайте его как
output.min.js.
Что делает минификатор JavaScript?
Минификация уменьшает JavaScript, не меняя его поведения. Инструмент использует Terser — минификатор, который стоит за webpack, Vite и Rollup, — и применяет три вида изменений:
- Удаление пробелов и комментариев: отступы, переводы строк и комментарии движку JavaScript не нужны.
- Сокращение имён (mangling): имена локальных переменных и параметров функций вроде
subtotalпревращаются в одиночные буквы. Глобальные имена и свойства объектов не трогаются, поэтому ваш публичный API продолжает работать. - Сжатие: константные выражения вычисляются заранее, недостижимый код удаляется, операторы
ifпревращаются в тернарные, а короткие функции встраиваются.
Минификация или gzip: нужно ли и то, и другое?
Да. Gzip и Brotli сжимают повторяющиеся последовательности байтов при передаче, а минификация убирает байты, которые браузеру иначе пришлось бы загрузить, разобрать и скомпилировать. Типичный скрипт уменьшается на 40–60% от минификации и ещё на 60–70% от gzip. Показанный здесь размер gzip — хорошая оценка того, что реально отправит ваш сервер.
Сохранение лицензионных комментариев
Многие open-source лицензии (MIT, BSD, Apache) требуют, чтобы уведомление об авторских правах оставалось с кодом. По соглашению комментарии, начинающиеся с /*! или содержащие @license или @preserve, сохраняются, когда включено Сохранять лицензионные комментарии.
Когда не стоит минифицировать вручную
Если в проекте уже есть бандлер, пусть он минифицирует продакшен-сборки и генерирует source maps для отладки. Онлайн-минификатор идеален для разовых скриптов, сниппетов для CMS или менеджера тегов, букмарклетов и проверки того, насколько маленьким может стать фрагмент кода.
Часто задаваемые вопросы
Загружается ли мой код на сервер?
Может ли минификация сломать мой код?
Function.prototype.toString() или на имена локальных переменных через eval, может пострадать; в таком случае выключите Сокращать имена.