Профессиональные инструменты позволяют разработчику сосредоточиться на творчестве, а не на технических деталях. Цель Мирты — открыть мир Wiren Board для каждого, кто увлечён программированием.
О том, как начать работу с Миртой, было рассказано в предыдущей статье:
Сегодня мы рассмотрим ключевые улучшения, которые произошли за последние полгода активной разработки.
Мастер создания проектов
Утилита за секунды создаёт готовую к работе среду разработки, беря на себя всю рутину: от инициализации репозитория и настройки TypeScript до установки всех необходимых зависимостей и конфигурации процесса сборки.
Запуск мастера создания проектов, как и прежде, осуществляется консольной командой
pnpm create mirta
Интерфейс стал компактнее и теперь поддерживает многоуровневые меню. В будущем планируется добавление различных шаблонов, которые станут наглядными «живыми» примерами автоматизаций — готовым кодом, который можно протестировать, отладить или сразу задеплоить на контроллер в пару кликов, чтобы увидеть его в работе.
Шаблоны и конфигурации мастера регулярно обновляются, чтобы вы всегда работали с актуальными лучшими практиками.
Начните с простого скрипта, выбрав тип проекта «Классический», либо сразу проектируйте масштабируемое решение на базе монорепозитория — тип «Моно».
Следующим шагом система предложит задействовать расширенные возможности шаблонов:
- Примеры использования: образцы кода и подробные комментарии в конфигурации деплоя для быстрого старта.
- ESLint: статический анализатор кода, который помогает находить ошибки и неточности ещё до запуска скрипта.
- Vitest: поддержка модульного тестирования и локальной отладки с использованием точек останова (breakpoints).
- SSH: упрощённая настройка подключения к вашему контроллеру для быстрого деплоя файлов.
- GitHub: готовые конфигурации CI/CD-процессов, которые будут автоматически тестировать и собирать ваш код в GitHub (для тестирования необходимо также выбрать опцию Vitest).
Вам достаточно сделать выбор — программа задаст ещё несколько уточняющих вопросов и автоматически подготовит всё это к работе.
Шаблон NPM-пакета
Также доступен шаблон для NPM-пакетов: в категории «Моно» выберите «Пакет», если хотите легко и быстро поделиться своими разработками с сообществом.
Шаблон «Пакет» включает два проекта: сам модуль для публикации в NPM и проект с примером использования, для удобной отладки.
Модуль подключён к демо-проекту как зависимость, что позволяет сразу задеплоить его на тестовый контроллер и проверить работу в реальных условиях.
После публикации демонстрационный проект становится живой документацией — наглядным примером использования вашего модуля.
Хотите реальный пример? Без проблем, @mirta/chatbot создан средствами фреймворка, на основе шаблона «Пакет».
Это чат-бот для любых проектов Мирты, позволяющий управлять контроллером умного дома прямо из Telegram. К нему мы ещё вернёмся позднее, а пока ссылка на отдельный репозиторий:
Чтобы добавить в свой проект - просто выполните в терминале VSCode команду
pnpm add @mirta/chatbot
Ваши разработки могут распространяться точно так же и без лишних усилий — вы пишете код, фреймворк помогает комплексно протестировать, сформировать файл со списком изменений и опубликовать пакет с автоматическим добавлением информации о происхождении (provenance).
Всё это предоставляется полностью бесплатно. Если вам понадобится помощь с настройкой или возникнут вопросы, присоединяйтесь к закрытому чату Mirta Guild для подписчиков на Boosty. Наше сообщество всегда готово помочь дельным советом — все мы пишем автоматизации по-разному: под Windows, Linux и MacOS.
Хранилище состояний Mirta Store
Концепция управления состоянием, вдохновлённая Pinia и адаптированная для среды Wiren Board, получила дальнейшее развитие. Ранее она уже рассматривалась подробно:
Теперь хранилище поддерживает геттеры и действия, а также защищено от ошибок повторного использования идентификаторов. При создании классического проекта можно выбрать вариант шаблона, в котором показана работа с Mirta Store.
Техническая документация доступна в репозитории:
Пример реального использования в проектах на основе Мирты - всё тот же @mirta/chatbot
Геттеры (Getters) — для вычисляемых значений. Позволяют хранить в состоянии только базовые данные (например, count: 5), а производные значения (например, double: 10) вычислять на лету, избегая дублирования и риска расхождения данных в разных скриптах.
Действия (Actions) — для логики изменения состояния. Позволяют объединить сложную последовательность изменений состояния и побочных эффектов (например, валидацию, логирование) в одну переиспользуемую функцию. Это делает код чище и предотвращает ошибки при ручном обновлении нескольких полей.
Утилита деплоя
Прежде отправка файлов на контроллер в проектах Мирты была задачей «со звёздочкой» — в конфигурации package.json формировалась команда wb:deploy, основанная на сложном синтаксисе rsync. Ранние упоминания настройки деплоя можно найти в начальных статьях, ещё до появления фреймворка:
Команда mirta deploy входит в состав пакета @mirta/cli — он по умолчанию подключен во все создаваемые проекты и заменяет прежний скрипт wb:deploy.
Параметры деплоя задаются через файл конфигурации mirta.config.json, одинаковый и для классических проектов, и для монорепозиториев.
Техническое описание команды доступно в репозитории:
Тема деплоя довольно объёмная и требует подготовки системы (для Windows - установки WSL2, для MacOS - rsync через Brew), поэтому ей посвящена отдельная статья:
Интеграция с ИИ-ассистентами
В настоящее время прорабатывается специальный контекст, который позволит ассистентам мгновенно вникать в суть вашего проекта, давать точные и полезные советы по программированию автоматизаций или настройке фреймворка.