Минификатор HTML, CSS и JS
Удалите комментарии и лишние пробелы без риска; скопируйте результат или скачайте файл .min.
Инструмент
Этот инструмент минифицирует HTML, CSS, JavaScript и JSON: удаляет комментарии, пустые строки, отступы и пробелы вокруг знаков препинания и больше ничего не трогает. Строки, содержимое url(), шаблонные строки, регулярные выражения, содержимое pre, textarea, script и style, условные комментарии и лицензионные комментарии, начинающиеся с /*!, остаются как есть; в HTML не удаляется ни один тег и ни одна кавычка атрибута. Вставьте код или загрузите файл размером до 2 МБ; всё выполняется в вашем браузере, код никогда не отправляется на сервер.
В результате показаны размер исходника и результата в байтах, процент экономии и, если браузер это поддерживает, реальный размер обоих текстов в gzip. Обратите внимание на последнее поле: серверы и так отдают файлы сжатыми gzip или brotli, а повторяющиеся пробелы и отступы после сжатия занимают очень мало места, поэтому минификация сама по себе даёт ограниченный выигрыш в скорости и обретает смысл только вместе со сжатием. Для скорости страницы обычно важнее сжатие и заголовки кэширования, размер изображений и ненужные скрипты.
Инструмент не сокращает имена переменных, не преобразует код, не переписывает значения CSS (0.5 остаётся 0.5, 0px остаётся 0px) и не удаляет пустые правила; это ограничение сделано намеренно, чтобы результат вёл себя точно так же, как исходник. В JavaScript переводы строк сохраняются, поэтому автоматическая расстановка точек с запятой не затрагивается; однако различие между делением и регулярным выражением определяется по предыдущему токену, а JSX не поддерживается. Инструменты сборки вроде Vite, Next.js и webpack уже делают эту работу; этот инструмент для небольших сайтов без этапа сборки, отдельных файлов и быстрых проверок. Всегда сохраняйте исходный файл и никогда не правьте минифицированный вручную.
Частые вопросы
Почему результат уменьшился меньше, чем я ожидал?
Инструмент удаляет только комментарии и пробелы; он не сокращает имена и не преобразует код. Уже компактные файлы или файлы с небольшим числом комментариев меняются мало. Если сервер использует gzip или brotli, разница становится ещё меньше, и поле gzip показывает именно это.
Безопасен ли результат для JavaScript?
Переводы строк сохраняются, поэтому автоматическая расстановка точек с запятой работает так же; строки, шаблонные строки и регулярные выражения остаются нетронутыми. Различие между делением и регулярным выражением определяется по предыдущему токену и в очень редких случаях может быть ошибочным; откройте страницу и проверьте консоль перед публикацией. Для продакшен-сборки используйте esbuild, terser или инструмент сборки вашего проекта.
Отправляется ли мой код куда-либо?
Нет. Вставленный или загруженный код обрабатывается только в вашем браузере; оценка gzip тоже вычисляется встроенным в браузер интерфейсом сжатия. При обновлении страницы всё удаляется.
Можно ли потом править минифицированный файл?
Всегда правьте исходный файл и минифицируйте заново; ручные изменения в файле, сжатом в одну строку, приводят к ошибкам и теряются при следующем запуске. Держите исходник под контролем версий, а минифицированный файл считайте результатом сборки.
