Веб-разработка
JS Minify / Beautify
Сжать JavaScript для продакшена или отформатировать свёрнутый код в удобный для чтения вид.
Слишком большой для просмотра
Слишком большой для просмотра
Минификация JavaScript убирает пробелы, комментарии и переносы строк, часто сокращая имена локальных переменных — всё это не влияет на работу кода, но заметно уменьшает размер файла для более быстрой загрузки.
Как пользоваться
- Минификация: вставьте JavaScript-код — инструмент сожмёт его, сохраняя поведение идентичным.
- Форматирование: вставьте свёрнутый код без отступов, чтобы получить читаемую версию для анализа или отладки.
- Форматирование особенно полезно для разбора стороннего минифицированного скрипта, когда source map недоступна.
Типичные сценарии
- Быстрая минификация небольшого скрипта без настройки полноценного сборщика.
- Форматирование минифицированного кода сторонней библиотеки для понимания, что он делает.
- Разбор подозрительного или непонятного минифицированного JS перед тем, как доверять ему выполнение.
Что стоит помнить
Минификация — это не обфускация: переменные переименовываются для сжатия размера, а не для скрытия логики; серьёзная обфускация требует отдельных специализированных инструментов.
Минифицированный код в продакшене без source map сложно отлаживать — номера строк в ошибках не соответствуют оригинальному файлу.
Статья об этом инструменте: Минификация JavaScript: разница между минификацией и обфускацией
Часто задаваемые вопросы
Какой инструмент использует минификатор под капотом?
Он использует terser, широко применяемый минификатор и компрессор JavaScript, который также понимает современный синтаксис.
Почему минифицированный JavaScript сложнее отлаживать?
Terser сокращает имена переменных и функций, убирает пробелы и комментарии, а поскольку этот инструмент не генерирует source map, инструменты разработчика браузера не могут сопоставить минифицированный код с читаемыми исходными строками.
Сломает ли минификация мой код?
Для синтаксически корректного JavaScript минификация сохраняет поведение; если есть синтаксическая ошибка, инструмент сообщает строку и столбец, чтобы вы могли исправить её перед минификацией — всё работает локально без загрузки вашего кода.
Чем tree shaking отличается от минификации?
Tree shaking удаляет из бандла код, который нигде не используется, анализируя граф зависимостей модулей во время сборки, тогда как минификация лишь сокращает текстовую запись уже имеющегося кода — она не удаляет ни одной функции, которая реально выполняется.
Безопасно ли использовать минифицированный JavaScript в продакшн без дополнительной проверки?
Да, минификация — это чисто синтаксическое преобразование, которое сохраняет поведение программы идентичным; любое отличие в поведении после минификации свидетельствует о баге в самом минификаторе, а не о намеренном изменении логики.