Как проверить минификацию JavaScript
Сравните фактически загруженный файл с исходником, его сырой и переданный размер, наличие версии и работу сайта. Имя .min.js само по себе ничего не доказывает.
Быстрая проверка в браузере
- Откройте DevTools → Network, включите Disable cache, выберите JS и перезагрузите страницу.
- Для собственного файла запишите Request URL, Status, Resource Size, Transferred и
Content-Encoding. - Откройте Response. Production-код обычно компактный и без служебных комментариев, но форматирование DevTools кнопкой
{}не изменяет ответ. - Проверьте, что URL или manifest содержит актуальный hash/версию, а повторный выпуск меняет её при изменении содержимого.
- Откройте Console и пройдите ключевые действия на desktop/mobile.
Хороший результат: production-файл меньше исходного, загружается по актуальному URL, выполняется без новых ошибок, а исходники остаются отдельно и сборка воспроизводится.
Как оценить результат
| Наблюдение | Уровень | Действие |
|---|---|---|
| Компактный версионированный файл, функции работают | Проблемы нет | Сохранить размеры и build ID |
| Маленький файл не минифицирован, экономия минимальна | Низко | Сопоставить выгоду и стоимость сборки |
| Крупный собственный bundle содержит пробелы и комментарии | Высоко | Настроить production minifier |
| После минификации сломаны действия или загружается 404 | Критично | Вернуть прежний manifest/артефакт |
Независимое сравнение файлов
curl -sS --compressed -o /dev/null \
-w 'download=%{size_download} bytes\n' \
https://example.com/js/app.min.js
curl -sSI https://example.com/js/app.min.jsПервая команда показывает число загруженных байтов для ответа с согласованным сжатием, вторая — заголовки. Для чистого размера сохраните оба файла локально и используйте wc -c. Не сравнивайте разные версии или ответы с ошибкой.
Расхождения и границы
- Pretty print в DevTools визуально добавляет переносы, но не означает неминифицированный ответ.
- Gzip/Brotli меняет Transferred, поэтому его нельзя путать с размером ресурса после декодирования.
- Source map может быть приватной и доступной только системе мониторинга; отсутствие публичного
.mapне ошибка. - Сторонний файл нельзя безопасно пересобрать без исходников, лицензии и контроля поставщика.
- Минификация не подтверждает отсутствие unused JS и не измеряет стоимость выполнения.
Автоматическая цена относится к согласованным файлам и шаблонам на странице услуги. Для настройки используйте пошаговую инструкцию.