Минификация (программирование)

редактировать
Удаление ненужных символов в коде без изменения его функциональности

Минификация (также минимизация или минимизация ) - это процесс удаления всех ненужных символов из исходного кода интерпретируемых языков программирования или языков разметки без изменения его функциональности. Эти ненужные символы обычно включают символы пробела, символы новой строки, комментарии и иногда разделители блоков, которые используются для повышения удобочитаемости. к коду, но не требуются для его выполнения. Минификация уменьшает размер исходного кода, делая его передачу по сети (например, Интернет) более эффективной. В культуре программистов стремление к максимально миниатюрному исходному коду является целью развлекательных соревнований по гольфу кода.

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

Цели минификации не совпадают с целями запутывания ; первый часто предназначен для отмены с помощью pretty-printer или unminifier. Однако для достижения своих целей минификация иногда использует методы, также используемые в обфускации ; например, сокращение имен переменных и рефакторинг исходного кода. Когда минификация использует такие методы, pretty-printer или unminifier может полностью отменить процесс минификации только в том случае, если ему предоставлены подробные сведения о преобразованиях, выполняемых такими методами. Если эти сведения не предоставлены, обратный исходный код будет содержать другие имена переменных и поток управления, даже если он будет иметь ту же функциональность, что и исходный код .

Содержание

  • 1 Пример
  • 2 История
  • 3 Сопоставление источников
  • 4 Типы
    • 4.1 Инструменты
    • 4.2 Веб-разработка
  • 5 Ссылки

Пример

Например, JavaScript code

// Это комментарий, который будет удален минификатором var array =; for (var i = 0; i < 20; i++) { array[i] = i; }

эквивалентно

, но длиннее, чем для (var a = [i = 0]; i <20;a[i]=i++);

История

В 2001 году Дуглас Крокфорд представил JSMin, который удалял комментарии и пробелы из кода JavaScript. За ним последовал YUI Compressor в 2007 году. В 2009 году Google открыл свой инструментарий Closure, включая Closure Compiler, который содержал функцию сопоставления источников вместе с расширением Firefox под названием Closure Inspector В 2010 году Михай Базон представил UglifyJS, который был заменен UglifyJS2 в 2012 году; переписывание должно было обеспечить поддержку исходной карты. С 2017 года Алекс Лам взял на себя обслуживание и разработку UglifyJS2, заменив его на UglifyJS3, который объединил интерфейс командной строки с интерфейсом командной строки. API.

Сопоставление источников

Карты источников позволяют инструментам отображать унифицированный код из минимизированного кода с оптимизированным «сопоставлением» между ними. Исходный формат был создан Джозефом Шорром как часть Closure Inspector проект минификации. Обновления версий 2 и 3 уменьшили размер файла карты. s.

Типы

Инструменты

Код Visual Studio поставляется с поддержкой минификации для нескольких языков. Он может легко просматривать Visual Studio Marketplace, чтобы загрузить и установить дополнительные минификаторы.

Оптимизаторы JavaScript, которые могут минимизировать и генерировать исходные карты, включают UglifyJS и Google Closure Compiler. Кроме того, некоторые онлайн-инструменты, такие как Microsoft Ajax Minifier, Yahoo! YUI Compressor или Pretty Diff, может сжимать файлы CSS. Для минификации HTML-кода есть следующие инструменты: HtmlCompressor, HTMLMinifier и WebMarkupMin. Существует сценарий Power-Shell с именем «minifyPS», который может сжимать код сценария PowerShell, а также код JavaScript.

Веб-разработка

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

JavaScript и каскадных таблиц стилей (CSS) могут быть минимизированы, сохраняя их поведение и значительно уменьшая размер файла. Библиотеки, доступные в Интернете, могут в разной степени минифицироваться и оптимизироваться. Некоторые библиотеки также объединяют несколько файлов сценариев в один файл для загрузки клиентом. Исходные карты JavaScript могут сделать код доступным для чтения и отладки даже после того, как он был объединен и уменьшен.

Ссылки

Последняя правка сделана 2021-05-30 13:14:52
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте