а как бороться с маршрутизацией ??

оманда разрабатывает приложение angular 5, которое некоторое время находилось в производстве, но недавно нам было поручено заставить приложение работать на других 3 сайтах, которыми владеет компания. Один сайт - это SPA, созданный с Angular6, другой - также SPA, но использующий Angular5, а другой использует некоторые старые библиотеки, такие как jQuery.

Руководство хотело, чтобы мы сразу же интегрировались в Angular5 SPA, поэтому мы просто экспортировали все приложение в виде модуля с дочерними маршрутами и позволили другому приложению выполнить загрузку.

Но я боюсь, что вышеупомянутый подход не будет работать для неуглового сайта. Это также тесно связывает оба приложения, так как приложение «host» должно знать обо всех зависимостях нашего приложения, которое не является тривиальным приложением (я бы сказал, довольно большим), и устанавливать их, это вызывало проблемы, когда обоим приложениям требовались разные версии. та же зависимость, не говоря уже о том, что нам нужно будет синхронизировать при обновлении зависимостей или самой платформы. Я не думаю, что этот подход будет масштабироваться при встраивании приложения в большее количество сайтов.

Моя первая идея для более общей реализации состояла в том, чтобы обновить наше приложение до Angular 6 и создать веб-компонент с пользовательским элементом, но нам нужно поддерживать IE11 и Edge, которые не поддерживают встроенную инкапсуляцию, поэтому нам нужно протестировать наше приложение в каждый сайт, где он используется, чтобы убедиться, что он не нарушает наши стили, также я не знаю, может ли веб-компонент управлять дочерними маршрутами или нет.

Другая идея заключается в использовании iframe, но моя проблема здесь заключается в изменении размера iframe для адаптации к контенту и в том, как добавить дочерние маршруты в приложении host из приложения resident внутри iframe.

Есть ли лучший способ достичь того, что нам нужно сделать?

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

Спасибо за вашу помощь.

Ответы на вопрос(3)

Ваш ответ на вопрос