Библиотека jQuery распространяется в нескольких вариантах: полный исходный код, сжатая версия (minified) и сборки с отдельными модулями. Сборка подразумевает процесс подготовки кода к использованию на сайте или в проекте, включающий объединение файлов, удаление неиспользуемого кода и оптимизацию для повышения производительности.
Исходный код jQuery организован модульно. Каждый модуль выполняет отдельную функцию: работа с селекторами, событиями, эффектами, AJAX и т.д. При необходимости можно создавать кастомные сборки, исключая ненужные модули, что снижает размер библиотеки и ускоряет загрузку страницы.
Минификация — процесс уменьшения размера кода без изменения его функциональности. В jQuery минификация выполняется с помощью инструментов, таких как UglifyJS, Terser или Closure Compiler. Основные задачи минификации:
Минифицированная версия библиотеки обозначается расширением
.min.js. Например, jquery-3.6.4.min.js. Она
загружается быстрее, снижая трафик и время отклика.
В современных проектах jQuery часто подключается через npm:
npm install jquery
После установки можно импортировать библиотеку в проект:
import $ from 'jquery';
Для сборки и минификации используют webpack, Rollup или Parcel. Пример конфигурации webpack для минификации jQuery:
const path = require('path');
const TerserPlugin = require('terser-webpack-plugin');
module.exports = {
mode: 'production',
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
optimization: {
minimize: true,
minimizer: [new TerserPlugin()]
}
};
В этом примере TerserPlugin отвечает за минификацию
кода. При сборке webpack объединяет все модули, включая jQuery, в один
файл и сокращает его размер.
jQuery предлагает возможность создания собственных сборок, исключая ненужные модули. Для этого используется официальный jQuery Custom Build или ручная сборка исходного кода. Пошаговый процесс:
npm install
grunt custom:-ajax,-effects
Здесь опция -ajax,-effects исключает модули AJAX и
эффекты, что уменьшает размер итогового файла.
Для ускорения загрузки страниц рекомендуется использовать:
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<script src="jquery-3.6.4.min.js" defer></script>
В сборках jQuery возможна интеграция с ESM (ECMAScript Modules) или CommonJS:
Пример ESM:
import jQuery from 'jquery';
jQuery('#element').hide();
После сборки и минификации рекомендуется проводить тесты:
bundle.js или
jquery.min.js).Минификация и кастомные сборки напрямую влияют на скорость рендеринга и отзывчивость интерфейса.
Для автоматизации сборки и минификации используют:
Каждый инструмент позволяет настроить детальную оптимизацию и создавать сборки, адаптированные под конкретные нужды проекта.
Эти подходы обеспечивают оптимальное сочетание функциональности, скорости загрузки и поддерживаемости кода.