Как можно использовать наши компоненты Angular в проекте Angular другого приложения? - PullRequest
0 голосов
/ 05 марта 2019

Код для этого пока отсутствует, я просто недостаточно знаком с Angular, чтобы знать, как это сделать. По сути, в моей компании есть еще одна команда, которая имеет приложение Angular 6, в котором размещаются виджеты, и мы будем создавать приложение Angular 6 с несколькими подробными виджетами, которые имеют смысл появляться в продукте другой группы (их пользователи хотели бы видеть наши виджеты без возможности входа в отдельную систему).

Здесь много бюрократии, которая делает это сложной задачей, когда другая команда хочет, чтобы наша команда была как можно более изолированной. У нас есть среда разработки, тестирования и производства OpenShift, и они одинаковы. Наши виджеты достаточно сложны для того, чтобы они не хотели владеть их разработкой.

В идеале, мы могли бы как-то развернуть наш Angular-компонент, и виджеты были бы обновлены в их проекте без их участия или без необходимости доступа к любому из их кода или модулей OpenShift (за исключением одного раза, чтобы поместить основополагающий элемент). инфраструктура на месте). Это похоже на тэг iframe html, но это нарушение протокола безопасности в моей компании.

Некоторые из моих идей заключались в создании пакета NPM нашего проекта Angular, который будет находиться в репозитории NPM нашей компании, в который они будут включать и отображать соответствующие компоненты в своем проекте, однако при развертывании нового кода у нас будет переработать свой модуль OpenShift Angular, чтобы он установил новую версию пакета NPM, и они (разумно) не хотят предоставлять нам доступ к своей среде OpenShift или участвовать в наших выпусках.

Еще одной идеей была ветвь функций их углового проекта, которую мы будем размещать в нашей среде разработки OpenShift, но никогда не продвигать ее в нашу тестовую или производственную среду OpenShift, вместо этого мы слились бы с их веткой разработки, и это повлияло бы на их CI. / CD конвейер, чтобы перейти к их разработке / тестированию OpenShift и затем вручную подтолкнуть к prod. Это потребовало бы большой координации между нашими командами, однако, из-за регулярного слияния нашего кода, и есть страх того, что наш код нарушит их конвейер CI / CD, и они не смогут продолжить продвижение к разработке из-за нашего кода не пройдя тесты и т. д.

Кроме этого, есть ли какие-либо функции Angular или функции OpenShift, в которые мы могли бы внедрить наш компонент (возможно, даже в виде HTML) в их проект Angular? Очевидно, что любое решение потребует координации между нашими командами, но мы бы предпочли, чтобы они:

  • Не требуется, чтобы у нас был доступ к средам OpenShift друг друга
  • Не требуется больше, чем ежемесячно или около того, координация
  • Не участвует в циклах освобождения друг друга
  • Не влияет на конвейеры CI / CD других команд
  • Начальная настройка инфраструктуры может быть большой

1 Ответ

1 голос
/ 05 марта 2019

Поскольку вы хотите исключить библиотеки npm, альтернативой может быть предоставление ваших виджетов в CDN, откуда целевое приложение извлекает ваши скрипты. Обычно такие сценарии должны быть версионными, но в вашем случае «последняя» версия, вероятно, будет менее проблематичной.

Поскольку оба проекта используют Angular, убедитесь, что вы всегда используете одну и ту же версию (или, по крайней мере, тщательно тестируете, если они совместимы), прежде чем развертывать новую версию своих сценариев.

Возможно, это можно сделать более надежным с помощью веб-компонентов (угловых элементов) с Shadow DOM.

...