@mirta/rollup
v0.5.0
Published
Predefined Rollup configuration for wb-rules project builds
Readme
@mirta/rollup
Готовые конфигурации сборки с zero-config и возможностью кастомизации,
а также публичные API для загрузки.env-файлов и определения контекста проекта.
@mirta/rollup — это основной инструмент сборки экосистемы на базе фреймворка Мирта.
Он предоставляет:
- Готовые zero-config конфигурации для сборки под контроллеры Wiren Board и для публикации на NPM.
- Фабрики конфигураций для кастомизации.
- Утилиты для загрузки переменных окружения.
- Работу с контекстом проекта — на основе
@mirta/workspace.
Используется как самим фреймворком, так и проектами, созданными через create-mirta.
Не предназначен для выполнения в среде Duktape на контроллерах Wiren Board.
🧩 Режимы сборки
1. @mirta/rollup/config — сборка под контроллер
Для проектов автоматизации на базе wb-rules, исполняемых на контроллерах Wiren Board.
Использование
# Установка
pnpm add -D @mirta/rollup
# Сборка без rollup.config.mjs
rollup -c node:@mirta/rollup/configОсобенности
- Вход:
src/wb-rules/*.[jt]s; - Формат:
cjs; - Совместимость: Babel +
@mirta/polyfills; - Автоматическая адаптация
require()через внутренний плагинwb-rules-imports; - Переменные окружения:
- загружаются из
.env*файлов; - фильтруются по префиксам:
MIRTA_,APP_;
- загружаются из
- Поддержка монорепозиториев: использует
@mirta/workspaceдля корректного разрешения зависимостей.
✅ Автоматически добавляется в проекты, сгенерированные через create-mirta, как devDependency — используется для их сборки.
2. @mirta/rollup/config-package — сборка в NPM-пакеты
Для проектов, распространяемых через NPM в виде подключаемых модулей экосистемы Мирта.
Использование
# Без rollup.config.mjs
rollup -c node:@mirta/rollup/config-package
# При сборке инструментов командной строки без exports
rollup -c node:@mirta/rollup/config-package --config-skip-exports
Особенности
- Вход:
src/index.ts; - Формат:
es→.mjs; - Валидация соответствия
src/↔package.json#exports; - Генерация типов:
.d.mtsчерезrollup-plugin-dtsс исправлением алиасов; - Внешние зависимости: корректно определяются с помощью
@mirta/workspace.
✅ Автоматически добавляется в пакеты, сгенерированные через create-mirta с шаблоном "распространяемый модуль".
🛠 Фабрики конфигураций (для кастомизации)
Для полного контроля используйте прямые функции:
import { defineConfig, definePackageConfig } from '@mirta/rollup'
// Для проекта под контроллер
export default defineConfig({
cwd: process.cwd(),
external: [/^lodash/],
envLoader: {
prefix: 'APP_',
},
})
// Для пакета
export default definePackageConfig({
cwd: process.cwd(),
input: 'src/main.ts',
external: ['some-legacy-dep'],
})
Преимущества
- Следуют стандартам сборки фреймворка Mirta;
- Позволяют расширять поведение по умолчанию;
- Идеальны для сложных проектов.
🔄 Архитектурная роль
Пакет обеспечивает консистентность и предсказуемость на всех уровнях экосистемы:
- Все пакеты фреймворка собираются с помощью
@mirta/rollup; - Генерируемые
create-mirtaпакеты используют конфигурации@mirta/rollup/configи@mirta/rollup/config-package, обеспечивая единый стандарт сборки дляwb-rules.
Так формируется замкнутая цепочка доверия: инструмент, создающий проект, сам прошёл через тот же процесс, что и результат.
