Моя команда разрабатывает угловое приложение, которое уже некоторое время находится в производстве, но недавно нам было поручено заставить приложение работать на других трех сайтах, которыми владеет компания.Один сайт представляет собой SPA, созданный с Angular6, другой также SPA, но использует Angular5, в то время как другой использует некоторые старые библиотеки, такие как jQuery.
Руководство хотело, чтобы мы сразу интегрировались с Angular5 SPA, поэтому мы простоэкспортировал все приложение как модуль с дочерними маршрутами, и пусть другое приложение выполняет загрузку.
Но я боюсь, что вышеупомянутый подход не будет работать для неуглового сайта.Это также тесно связывает оба приложения, так как приложение «host» должно знать обо всех зависимостях нашего приложения, которое не является тривиальным приложением (я бы сказал, довольно большим), и устанавливать их, это вызывало проблемы, когда обоим приложениям требовались разные версии.та же зависимость, не говоря уже о том, что нам нужно будет синхронизировать при обновлении зависимостей или самой платформы.Я не думаю, что этот подход будет масштабироваться при встраивании приложения в большее количество сайтов.
Моя первая идея для более общей реализации состояла в том, чтобы обновить наше приложение до Angular 6 и создать веб-компонент с пользовательским элементом, нонам нужно поддерживать IE11 и Edge, которые не поддерживают встроенную инкапсуляцию, поэтому нам нужно тестировать наше приложение на каждом сайте, где оно используется, чтобы убедиться, что они не нарушают наши стили, также я не знаю, является ли веб-компонентможет управлять дочерними маршрутами или нет.
Другая идея состоит в том, чтобы использовать iframe, но моя проблема здесь заключается в изменении размера iframe для адаптации к контенту и в том, как добавить дочерние маршруты в приложение «host» из «resident».приложение внутри iframe.
Есть ли лучший способ достичь того, что нам нужно сделать?
Идеальное решение должно позволить нашему приложению использоваться на нескольких сайтах (каждый из которых обеспечивает определенную конфигурацию)без нас, чтобы узнать о сайте с помощью нашего приложения.
Спасибо за вашу помощь.