iabs-ui-components v0.0.6
iabs ui starter kit Template
Репозиторий для шабона микрофронта
Инфраструктура
репозиторий template для микрофронтов
- шаблон для создания приложений по архитектуре микрофронтенд (Webpack Module Federation)
репозиторий Заглушки opsNext (host)
- в него встраиваются микрофронты для тестирования во время разработки
- воспроизводит раздел системы OPSNext OpsNext dev среда
репозиторий библиотеки общих компонентов
- используется для разработки и публикации общих компонентов для микрофротов
репозиторий микрофронта Сделок (remote)
- фронт для сервисе биржевых сделок, который мы предоставляем для opsNext
Инициализация и синхрониция микрофронтендов
при инициализации микрофронта, происходит push кодовой базы шабона
iabs-ui-starter-kitв только что созданный (в пустой) репозиторий микрофронта- открываем локально
iabs-ui-starter-kit, git checkout mastergit push -u <url репозитория> master
- открываем локально
для синхронизации микрофронта и шаблона делается git pull (подмёрживается обновлённый iabs-ui-starter-kit с мастера)
git pull ssh://git@bitbucket.region.vtb.ru:7999/iabs/iabs-ui-starter-kit.git master
Запуск проекта
Авторизоваться в npm
Перед началом работы с проектом запустить настройки аутентификации в нексус репозитории
- на основе
npmrc.local-auth-settings.example.shСоздать файл в корне проектаnpmrc.local-auth-settings.shи подставить данные своего аккаунта ВТБ вместо данных, предоставленных для примера
# npmrc.local-auth-settings.example.sh
user="VTB0000000"
password="пароль"- для конфиденциальности файл
npmrc.local-auth-settings.shуказан в.gitignore - если проект запускается на os windows, то shell script можно запустить с помощью
Git Bash(консоли, которая идёт в установочном пакете сGit) - конфигурация npm находится в файле
.npmrc
- Запустить скрипт
npmrc.local-auth-settings.sh
sh npmrc.local-auth-settings.sh- в глобальном конфигурационном файле npm .npmrc должна появиться конфигурация авторизации
- для конфиденциальности файл
.npmrcуказан в.gitignore
# example
//nexus-ci.corp.dev.vtb/repository/pfomb-npm/:_auth="parsed base64 credentials"Проинсталлировать зависимости
npm i
Старт проекта
Для запуска проекта используются npm scripts прописанные в package.json
start- запуск проекта локально. Микрофронт в режиме встройкиstart:standalone- запуск проекта локально. Микрофронт stand alone (без встройки в хост)build:*- (*- значениеENV_TARGET) сборка проекта в режимеproductionдля деплоя. preprod и prod без sorce mapstub-server- запуск сервера заглушекstart-dev-stand-stub-server- запуск сервера заглушек на стенде (для девопса)
Среды для сборки
переменная окружения ENV_TARGET задана в соответствующем npm-script'е
type ENV_TARGET =
| 'local' // для локальной разработки
| 'dev' // для разработки и тестирования
| 'ift' // для интеграционного тестирования
| 'preprod' // для тестирования в окружении продакнш
| 'prod' // и так понятноЗапуск локальной сборки iabs-opsnext-stub
- Склонировать репозиторий iabs-opsnext-stub https://bitbucket.region.vtb.ru/projects/IABS/repos/iabs-opsnext-stub/browse
git clone ssh://git@bitbucket.region.vtb.ru:7999/iabs/iabs-opsnext-stub.git
- перейти в ветку demo
git checkout demo- создать файл
npmrc.local-auth-settings.ermo.core.shна основеnpmrc.local-auth-settings.ermo.core.example.sh - внести креденшиалы dev.corp учётки в скрипт
npmrc.local-auth-settings.ermo.core.shи запустить обновив.npmrc - установить зависимости
npm i
npm -v
9.8.1
node -v
v18.18.1 npm i- запустить npm script c указанием переменной окружения STAND=1
STAND=1 npm run start
Встройка микрофронта в хост iabs-opsnext-stub локально
- В файл
src/modules/ApplicationsMenu/ApplicationsMenu.tsxв useEffect добавить конфиг встраиваемого микрофронта, заполнив нужные поля
const testCat = {
categoryName: 'Сервисы операционной поддержки брокерского бизнеса',
menuItems: [
{
itemName: 'Мой микрофронт', // то что будет написано на плашечке микрофронта
risCode: 'ermo_starter_kit',
containerName: 'ermo_starter_kit', // значение -- это имя поля в объекте localOverrides
moduleName: 'ErmoStarterKitApp',
itemCode: undefined,
description: undefined,
path: undefined,
host: undefined,
parameters: undefined,
taskCreationOutOfERM: false,
},
],
}- В файл
src/modules/TasksProcessing/components/RemoteController/localOverrides.tsдобавить конфиг встраиваемого микрофронта:
ermo_starter_kit: {
host: 'http://localhost:3001',
path: '/remoteEntry.js',
risCode: 'ermo_starter_kit',
containerName: 'ermo_starter_kit', // должно совпадать с полем объекта
moduleName: 'ErmoStarterKitApp',
},Важно, чтобы совпадал
containerNameс именем поля микрофронта вlocalOverridesи значения полей вApplicationsMenu.tsxЗначениеmoduleNameдолжно совпадать с неймспейсом приложения, которое exposes из микрофронта ЗначениеcontainerNameдолжен совпадать с полемnameу встраиваемого микрофронта вconfig/remote.config.json
Общестримовое Demo локально
- Для общестримого локального демо
Прописать порты в:
config/webpack.parts.js: devServer.portconfig/paths.js: publicUrls.dev - прописываем порт в url локалхостаstub-server/server.js: https.listen, server.listensrc/utils.ts: case 'local': поле api
В данный момент существуют:
- микрофронт шаблона (iabs-ui-starter-kit)
- dev server: 4001
- stub server: 5001
- микрофронт сделок (2112.erm_iabs_deals)
- dev server: 4002
- stub server: 5002
Контакты
- Андерсон Дмитрий
https://t.me/dandgerson+7 905 634 4467https://dion.vc/event/danderson - Моисеев Илья
https://t.me/kennystorm+7 999 829 0458https://dion.vc/event/imoiseev - Жулмурзин Алибек
https://t.me/forhayley+ 7 932 849 1750https://dion.vc/event/azhulmurzin - Данила Бликов
https://t.me/blikoff_d+7 985 790 1125https://dion.vc/event/dblikov
OpsNext
- Фронтенд:
- Андрей Поповский:
https://t.me/sqreder_at_inno
- Андрей Поповский:
Аналитик:
- Анастасия Шабалина:
https://t.me/shabalina_anastasiya
- Анастасия Шабалина:
Частые проблемы при переходе в ЕРМ на ИФТ/Препрод и их решения
Консультации по встройке в OpsNext
Каждую пятницу в 11:00 https://dion.vc/event/spasskii
Страничка для предварительных вопросов
- открыть слева этот раздел, внутри файлик для вопросов Q&A сессий