Для работы с Umbrella JS в современных проектах часто используют Rollup как сборщик модулей. Он позволяет создавать оптимизированные бандлы с минимальным размером, поддерживает Tree Shaking и легко интегрируется с ES-модулями.
Первым шагом является инициализация проекта и установка необходимых зависимостей:
npm init -y
npm install rollup rollup-plugin-terser @rollup/plugin-node-resolve @rollup/plugin-commonjs --save-dev
npm install umbrella-js
rollup — основной сборщик.@rollup/plugin-node-resolve — позволяет Rollup находить
зависимости в node_modules.@rollup/plugin-commonjs — конвертирует CommonJS-модули
в формат ES6.rollup-plugin-terser — минимизация итогового кода.Далее создаётся структура проекта:
project/
│
├─ src/
│ └─ index.js
├─ dist/
├─ rollup.config.js
└─ package.json
Файл rollup.config.js содержит правила сборки и
подключение плагинов. Пример минимальной конфигурации для Umbrella
JS:
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import { terser } from 'rollup-plugin-terser';
export default {
input: 'src/index.js', // входной файл
output: {
file: 'dist/bundle.js', // итоговый бандл
format: 'iife', // формат для браузера
name: 'App', // глобальное имя объекта
sourcemap: true
},
plugins: [
resolve(),
commonjs(),
terser() // минификация
]
};
iife используется для
браузерного окружения, esm для модульной системы.Umbrella JS распространяется как модуль ES6, поэтому его можно
подключать напрямую через import. В
src/index.js:
import u from 'umbrella-js';
const buttons = u('button');
buttons.on('click', function() {
console.log('Нажата кнопка:', this.textContent);
});
u('селектор') — основной способ выбора элементов.on('событие', callback) — привязка обработчика.u('.list-item')
.addClass('active')
.css('color', 'red');
Rollup автоматически оптимизирует импорт Umbrella JS, исключая неиспользуемые методы. Например:
import u from 'umbrella-js';
u('p').addClass('highlight');
В итоговом бандле попадут только те функции, которые реально используются, что снижает размер файла.
node_modules.Дополнительно можно использовать плагин
rollup-plugin-serve для локального сервера и
rollup-plugin-livereload для автоматической перезагрузки
при изменении кода.
Добавление скриптов в package.json упрощает сборку:
"scripts": {
"build": "rollup -c",
"dev": "rollup -c -w"
}
npm run build — статическая сборка.npm run dev — запуск в режиме наблюдения, пересборка
при изменении файлов.После сборки файл dist/bundle.js подключается
стандартным тегом <script>:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Umbrella JS + Rollup</title>
</head>
<body>
<button>Нажми меня</button>
<script src="dist/bundle.js"></script>
</body>
</html>
iife-формат гарантирует, что объект App
будет доступен глобально, а все зависимости будут встроены в бандл.
terser для
продакшена.Эта схема сборки позволяет эффективно интегрировать Umbrella JS в современные проекты, сохраняя небольшие размеры бандла и высокую производительность.