0.0.6 • Published 6 months ago

iabs-ui-components v0.0.6

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

iabs ui starter kit Template

Репозиторий для шабона микрофронта

Инфраструктура


  • dev

    • одна пода фронтовая
    • одна пода для стаб сервера
  • ci/cd

  • kuber

Инициализация и синхрониция микрофронтендов

  • при инициализации микрофронта, происходит push кодовой базы шабона iabs-ui-starter-kit в только что созданный (в пустой) репозиторий микрофронта

    • открываем локально iabs-ui-starter-kit,
    • git checkout master
    • git 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

Перед началом работы с проектом запустить настройки аутентификации в нексус репозитории

  1. на основе 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
  1. Запустить скрипт 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"

Проинсталлировать зависимости

  1. npm i

Старт проекта

Для запуска проекта используются npm scripts прописанные в package.json

  • start - запуск проекта локально. Микрофронт в режиме встройки
  • start:standalone - запуск проекта локально. Микрофронт stand alone (без встройки в хост)
  • build:* - (* - значение ENV_TARGET) сборка проекта в режиме production для деплоя. preprod и prod без sorce map
  • stub-server - запуск сервера заглушек
  • start-dev-stand-stub-server - запуск сервера заглушек на стенде (для девопса)

Среды для сборки

переменная окружения ENV_TARGET задана в соответствующем npm-script'е

type ENV_TARGET =
  | 'local' // для локальной разработки
  | 'dev' // для разработки и тестирования
  | 'ift' // для интеграционного тестирования
  | 'preprod' // для тестирования в окружении продакнш
  | 'prod' // и так понятно

Запуск локальной сборки iabs-opsnext-stub

  1. Склонировать репозиторий 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
  2. перейти в ветку demo
  git checkout demo
  1. создать файл npmrc.local-auth-settings.ermo.core.sh на основе npmrc.local-auth-settings.ermo.core.example.sh
  2. внести креденшиалы dev.corp учётки в скрипт npmrc.local-auth-settings.ermo.core.sh и запустить обновив .npmrc
  3. установить зависимости npm i
  npm -v
  9.8.1
  node -v
  v18.18.1
  npm i
  1. запустить npm script c указанием переменной окружения STAND=1 STAND=1 npm run start

Встройка микрофронта в хост iabs-opsnext-stub локально

  1. В файл 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,
    },
  ],
}
  1. В файл 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.port
  • config/paths.js: publicUrls.dev - прописываем порт в url локалхоста
  • stub-server/server.js: https.listen, server.listen
  • src/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 4467 https://dion.vc/event/danderson
  • Моисеев Илья https://t.me/kennystorm +7 999 829 0458 https://dion.vc/event/imoiseev
  • Жулмурзин Алибек https://t.me/forhayley + 7 932 849 1750 https://dion.vc/event/azhulmurzin
  • Данила Бликов https://t.me/blikoff_d +7 985 790 1125 https://dion.vc/event/dblikov

OpsNext

Консультации по встройке в OpsNext

Каждую пятницу в 11:00 https://dion.vc/event/spasskii

Полезные ссылки