CodeKitHub
Русский
Инструменты для кода

Минификатор и форматтер JavaScript

Вставьте JavaScript ниже, чтобы минифицировать его — сократив имена переменных, удалив пробелы и мёртвый код — либо отформатировать в читаемый, отступленный код. Оба режима разбирают ваш код в настоящее синтаксическое дерево, а не используют текстовые трюки, поэтому регулярные выражения, шаблонные строки и область видимости обрабатываются корректно.

Что это за инструмент?

Минификатор JavaScript переписывает код так, чтобы он был максимально компактным, но вёл себя идентично: сокращает имена переменных и функций там, где это безопасно, удаляет комментарии и пробелы, сворачивает константы и устраняет недостижимый код.

Этот инструмент построен на Terser — минификаторе на основе AST, который используют webpack, Vite, Rollup и большинство современных инструментов сборки JavaScript. Поскольку он действительно разбирает ваш код, а не сопоставляет текстовые шаблоны, он корректно отличает оператор деления от литерала регулярного выражения, не ломает шаблонные строки, содержащие последовательности, похожие на //, и не переименовывает переменную в имя, конфликтующее с чем-то во внешней области видимости.

Зачем его использовать?

  • Минификация на основе AST (Terser) — тот же движок, что используют основные бандлеры — безопасна с регулярными выражениями, шаблонными строками и замыканиями.
  • Сокращает имена переменных для реальной экономии размера, а не просто удаляет пробелы.
  • Видите точное количество сэкономленных байт и процентов.
  • Режим форматирования превращает обфусцированный однострочный минифицированный JS обратно в читаемый, отступленный код — полезно для понимания сторонних скриптов.
  • 100% локальная обработка — проприетарный код никогда не покидает ваш браузер.

Как использовать

  1. Вставьте свой JavaScript в поле ввода или нажмите «Загрузить пример», чтобы попробовать образец с литералом регулярного выражения и шаблонной строкой.
  2. Нажмите «Минифицировать», чтобы сжать код, или «Форматировать», чтобы привести его в порядок с отступом в 2 пробела.
  3. Проверьте сообщение под полями — режим минификации показывает уменьшение размера; синтаксическая ошибка в вашем коде покажет понятное сообщение вместо тихого создания сломанного результата.
  4. Нажмите «Копировать», чтобы получить результат.

Пример

Ввод

function greet(name) {
  const pattern = /^[a-z]+$/i;
  const msg = `Hello, ${name}!`;
  if (pattern.test(name)) {
    // simple check
    return msg;
  }
  return "Hi there";
}

Результат

function greet(n){const e=/^[a-z]+$/i,g=`Hello, ${n}!`;return e.test(n)?g:"Hi there"}

Имена переменных сокращены, комментарий и оператор if свёрнуты в выражение, но литерал регулярного выражения и шаблонная строка сохранены в точности, а поведение не меняется.

Практические советы

  • Минифицируйте на этапе сборки, а не вручную — храните читаемый исходник в системе контроля версий и генерируйте минифицированный бандл как шаг сборки.
  • Если минифицированный результат ведёт себя неожиданно, проверьте код, полагающийся на Function.prototype.name или рефлексию — сокращение имён переименовывает функции, что может проявиться в редких граничных случаях.
  • Форматирование стороннего скрипта перед чтением намного быстрее, чем попытка разобрать одну строку из 2000 символов.
  • Комбинируйте с минификаторами HTML и CSS ниже, если готовите полный статический бандл для развёртывания.

Где это применяется в реальных рабочих процессах

JavaScript обычно является самым крупным ресурсом, блокирующим рендеринг или разбор страницы, поэтому его минификация даёт реальный, измеримый эффект на время загрузки — больше, чем HTML или CSS в пересчёте байт на байт. Большинство современных фреймворков делают это автоматически на этапе сборки, но вручную написанные скрипты, расширения браузера и букмарклеты часто поставляются неминифицированными, если кто-то не прогонит их через подобный инструмент.

Режим форматирования часто используется в обратную сторону: отладка продакшен-ошибки по минифицированному стек-трейсу становится намного проще, когда окружающий код переформатирован и читаем, даже без оригинальных имён переменных.

Минификатор HTML · Минификатор CSS

Типичные сценарии использования

  • Сократить отдельный скрипт или букмарклет перед публикацией.
  • Переформатировать минифицированный скрипт с боевого сайта, чтобы понять, что он делает.
  • Очистить JavaScript, вставленный из сообщения на форуме или сгенерированный ИИ, перед внимательным чтением.
  • Быстро проверить, нет ли синтаксической ошибки во вручную написанном JS-фрагменте, поскольку ошибка разбора отображается как явное сообщение.

Часто задаваемые вопросы

Загружается ли мой JavaScript куда-либо?

Нет. И минификация, и форматирование выполняются локально в вашем браузере с помощью JavaScript. Всё, что вы вставляете, никогда не отправляется на сервер, что делает инструмент безопасным для проприетарного или неопубликованного кода.

Безопасно ли использовать минифицированный JavaScript в продакшене — не сломает ли он мой код?

Инструмент построен на Terser — минификаторе на основе AST, которому доверяют webpack, Vite и Rollup для продакшен-сборок, поэтому он корректно разбирает JavaScript, а не гадает по тексту. Тем не менее любой минификатор изредка может конфликтовать с кодом, полагающимся на function.name, eval() или нестандартные глобальные переменные — протестируйте свой бандл после минификации, как и с любым инструментом сборки.

Обфусцирует ли минификация мой код?

Она сокращает имена переменных и убирает структуру, из-за чего код труднее читать, но это не настоящая обфускация или защита — любой всё равно может прогнать его через форматтер (например, кнопку «Форматировать» здесь) и прочитать логику. Не полагайтесь на минификацию для сокрытия секретов или бизнес-логики.

Насколько обычно уменьшается размер JavaScript?

Вручную написанный код с длинными именами переменных, комментариями и пробелами обычно сжимается на 50-70% благодаря минификации и сокращению имён. Код, уже созданный бандлером, сэкономит меньше.

Можно ли прочитать минифицированный JavaScript с сайта, который я изучаю?

Да — вставьте его и нажмите «Форматировать», чтобы переотступить. Имена переменных останутся короткими и бессмысленными, поскольку минификация уже отбросила оригинальные, но структура станет читаемой.

Похожие инструменты