Минифика́ция () в языках программирования — процесс удаления ненужных символов из исходного кода без изменения его функциональности, с целью уменьшения его размера. Минификация применяется преимущественно к интерпретируемым языкам (таким как JavaScript, HTML, CSS), особенно в разработке веб-приложений, поскольку она способствует снижению времени загрузки, экономии пропускной способности и ускорению исполнения кода в браузере.
Процесс включает удаление: комментариев; пробелов и отступов; переводов строк; необязательных синтаксических элементов; переименование переменных и функций с длинными именами на более короткие (при условии сохранения логики программы).
Минификация часто выполняется в составе сборки проекта, при помощи инструментов типа Gulp, Webpack, Rollup или специализированных минификаторов, таких как UglifyJS, Terser, Google Closure Compiler и др.
Применение Минификация улучшает производительность за счёт уменьшения объёма передаваемых по сети файлов. Также используется в рамках SEO и оптимизации скорости загрузки сайта, поскольку Google учитывает скорость загрузки при ранжировании.
На практике минифицированные файлы часто дополняются source map-файлами, которые позволяют отлаживать минифицированный код, отображая его в виде оригинального исходника в инструментах разработчика браузера.
Пример До минификации: // JavaScript var array = []; for (var i = 0; i < 20; i++) { array[i] = i; }
После минификации: for(var a=[i=0];i<20;a[i]=i++);
Отличие от обфускации Минификация отличается от обфускации тем, что её цель — исключительно сокращение размера, а не защита кода от анализа. Хотя некоторые минификаторы делают код трудночитаемым, это побочный эффект, а не основная задача.
Инструменты Некоторые популярные инструменты минификации: UglifyJS — JavaScript минификатор; Terser — современный форк UglifyJS, с поддержкой ES6+; Google Closure Compiler — минификатор и оптимизатор JavaScript от Google; HTMLMinifier — минификация HTML; CleanCSS — минификация CSS; Gulp и Webpack — сборщики, поддерживающие минификацию в цепочке сборки.
См. также Сжатие данных Обфускация Оптимизация производительности веб-сайта Модульный бандлер
Примечания
Ссылки MDN Web Docs — Minify WebPlatform Docs: JavaScript minification JSMin от Дугласа Крокфорда
Категория:Исходный код Категория:Оптимизация программ Категория:JavaScript Категория:Веб-разработка