Метамодельный UI-конструктор: страницы и виджеты задаются конфигурацией с бэкенда (IBuilderConfig), фронт резолвит type в React-компонент.
Yarn workspaces, сборка — Rsbuild. React 18.3, MUI 7. Версия 3.1.0.
Миграция на React 19: todo/react-19.md.
yarn>= 1.22node>= 20
yarn installЛокальная разработка собирает constructor-share и constructor-classes из исходников (алиасы в Rsbuild), отдельно собирать пакеты не нужно.
Workspaces:
- essence-constructor-website — SPA-хост (роутинг, bootstrap, Module Federation host
essence_core) - essence-constructor-classes — виджеты конструктора (
GRID,IFIELD.*,PANEL,APPLICATION, …) - essence-constructor-share — ядро: сторы, формы, request, parser, реестр компонентов
- essence-constructor-eslint — общий ESLint-конфиг
- essence-constructor-package-builder — сборка/деплой публикуемых пакетов
Вне workspaces (для внешних модулей):
- create-constructor-module — скелет модуля:
yarn create @essence-community/constructor-module <name> - essence-constructor-scripts — сборка/zip внешнего модуля
Из корня:
yarn startПриложение: http://localhost:3000.
Другие режимы:
yarn start-localhost—.env.localhost(gate/api, настройкиMTGetSysSettings)yarn start-mock—.env.mock
Прокси задаётся в rsbuild.config.ts:
/api→http://localhost:9020//api_module→http://localhost:9020//notification→http://localhost:9020/(WebSocket)
Переопределение: переменная PROXY (JSON-массив {path, options}).
Файлы: packages/@essence/essence-constructor-website/.env*. Порядок загрузки: .env.${PROJECT} → .env.${NODE_ENV}.local → .env.local → .env.${NODE_ENV} → .env.
| Переменная | По умолчанию | Описание |
|---|---|---|
PUBLIC_URL |
/ |
Базовый путь статики и роутера. Для подкаталога: /app |
REACT_APP_PUBLIC_URL |
как PUBLIC_URL |
basename React Router, должен совпадать с PUBLIC_URL |
REACT_APP_SETTINGS |
/assets/scripts/settings.js |
Скрипт настроек в index.html. На localhost: /api?action=sql&query=MTGetSysSettings&js=true |
REACT_APP_COMMIT_ID |
DEV |
Хеш коммита; если DEV — из git log |
REACT_APP_BRANCH_NAME |
3.1.0 |
Версия/ветка сборки (version.json) |
REACT_APP_BRANCH_DATE_TIME |
no-valid |
Дата коммита; если no-valid — из git log |
PROJECT |
— | Выбор .env.${PROJECT} (localhost, mock) |
PROXY |
— | JSON [{path, options}] вместо прокси на :9020 |
Полный список, включая GATE_URL и переменные модулей: ENV.md.
yarn buildСобирается constructor-website, затем build копируется в корень репозитория. На сервер нужно перенести корневую папку build. Это SPA: несуществующие пути должны отдавать index.html. Подробнее — DEPLOY.md.
Публикация constructor-share (отдельно от приложения):
yarn workspace @essence-community/constructor-share run buildyarn lint/yarn lint:fixyarn tscheck:classes/yarn tscheck:share/yarn tscheck:websiteyarn test— Jest +@testing-library/reactyarn CI—tsc(classes + share) и eslint; так же запускается во внешнем Jenkins
- MODULE.md — внешние модули и метамодель
- APPLICATION.md — мультиприложения
- REDIRECT.md — внешний переход
/redirect/:b64 - KEYCLOAK.md — авторизация Keycloak
- ENV.md — переменные окружения
- PROXY.md — прокси в разработке
- DEPLOY.md — деплой SPA
- ATTRIBUTES.md — атрибуты классов
- STYLEGUIDE.md — соглашения по коду
- TEST.md — Jest / Testing Library
- todo/react-19.md — миграция на React 19
- UPLOAD_FILES.md — загрузка файлов
- TRANSIT_TO_SITE.md — переход в отчёты (session/token)
- FIELD_IMAGE.md — поле изображения