⚠️ ВНИМАНИЕ! Приложение пакет находится в стадии рефакторинга. Некоторые функции могут работать нестабильно.
Проект реализует модульную архитектуру на базе Vue 3, Vue Router, Pinia
- Строгая изоляция - каждый модуль самодостаточен
- Нет глобальных views/stores - все в модулях
- Единая структура - все модули следуют одинаковой структуре
- Масштабируемость - легко добавлять новые модули
- Полная типизация TypeScript
- Семантичные типы для всех компонентов
- Type safety на всех уровнях
src/
├── components/ # Переиспользуемые компоненты
│ ├── UserPanel.vue # Панель пользователя
│ ├── AppNavigation.vue # Навигация
│ ├── Breadcrumbs.vue # Хлебные крошки
│ └── AppContent.vue # Основной контент
├── modules/ # Модули приложения
│ ├── base/ # Базовый модуль
│ ├── app/ # Модуль приложения
│ ├── hello/ # Модуль приветствия
│ └── counter/ # Модуль счетчика
├── base/ # Ядро приложения
│ ├── Application.ts # Главный класс
│ ├── Context.ts # Система контекста
│ ├── Module.ts # Базовый класс модуля
│ └── StoreManager.ts # Менеджер Store
├── utils/ # Утилиты
├── types/ # TypeScript типы
└── config/ # Конфигурация
# Установка зависимостей
npm install
# Запуск в режиме разработки
npm run dev
# Сборка для продакшена
npm run build# Unit тесты
npm run test:unit
# E2E тесты
npm run test:e2e
# Линтинг
npm run lintПодробная документация находится в папке docs/:
- Правила создания модулей - подробное руководство по созданию модулей
- Технические детали - технические аспекты миграции
mkdir src/modules/my-module
mkdir src/modules/my-module/views
mkdir src/modules/my-module/componentsindex.ts- экспорт модуляroutes.ts- маршруты модуляstore.ts- stores модуляdepends.ts- зависимости модуля
Добавить в src/modules/index.js:
import myModule from "./my-module"
export default [base, app, hello, counter, myModule]Главный класс приложения, управляющий инициализацией Vue, маршрутизацией и stores.
Система контекста для внедрения зависимостей между модулями.
Базовый класс для всех модулей приложения.
Менеджер для работы с абстрактной системой Store в модульной архитектуре.
- UserPanel - панель пользователя с авторизацией
- AppNavigation - навигационное меню
- Breadcrumbs - хлебные крошки
- AppContent - основной контент с роутингом
- Только маршруты
- Базовые зависимости
- Маршруты
- Простой store
- Views
- Маршруты
- Store с состоянием
- Views и компоненты
- Зависимости
- Модульная архитектура - каждый модуль изолирован и самодостаточен
- TypeScript - полная типизация на всех уровнях приложения
- Vue 3 Composition API - современный подход к разработке компонентов
- Абстрактная система Store - универсальное управление состоянием
- Context API - система внедрения зависимостей между модулями
- Декомпозированные компоненты - переиспользуемые UI элементы
- Умная навигация - с хлебными крошками и активными состояниями
- Масштабируемость - легко добавлять новые модули и функции
- Производительность - оптимизированная сборка с Vite
- Быстрая разработка - модули можно разрабатывать независимо
- Легкое тестирование - каждый модуль тестируется изолированно
- Переиспользование - компоненты и логика легко переиспользуются
- Типобезопасность - TypeScript предотвращает ошибки на этапе разработки
- Масштабируемость - легко добавлять новые функции и модули
- Поддерживаемость - четкое разделение ответственности
- Производительность - оптимизированная загрузка и рендеринг
- Гибкость - возможность замены отдельных частей системы
- Нет глобальных views - все views должны быть в модулях
- Нет глобальных stores - все stores должны быть в модулях
- Модульная изоляция - модули не должны напрямую обращаться друг к другу
- Context для взаимодействия - использование Context API для обмена данными
- Vue 3 - современный фреймворк с Composition API
- TypeScript - строгая типизация на всех уровнях
- Vite - быстрая сборка и разработка
- CSS3 - современные стили без препроцессоров
- Абстрактная система Store - универсальное управление состоянием
- Совместимость с Pinia - возможность использования Pinia под капотом
- Модульная система - изолированные модули приложения
- Context API - система внедрения зависимостей
- Декомпозированные компоненты - переиспользуемые UI элементы