como incorporar um aplicativo angular a outro aplicativo?

Minha equipe desenvolve um aplicativo angular 5 que já está em produção há algum tempo, mas recentemente fomos incumbidos de fazer o aplicativo funcionar em outros 3 sites de propriedade da empresa. Um site é um SPA criado com o Angular6, outro também é um SPA, mas usa o Angular5, enquanto o outro está usando algumas bibliotecas mais antigas, como o jQuer

@Management queria que nos integrássemos ao SPA Angular5 imediatamente, então exportamos todo o aplicativo como um módulo com rotas filho e permitimos que o outro aplicativo fizesse a inicializaçã

Mas receio que a abordagem acima não funcione para o site não angular. Isso também restringe os dois aplicativos, já que o aplicativo 'host' precisa saber sobre todas as dependências do aplicativo, que não é trivial (eu diria que é muito grande) e instalá-los, isso causou problemas quando os dois aplicativos precisavam de versões diferentes do a mesma dependência, sem mencionar que precisaremos sincronizar ao atualizar dependências ou a própria estrutura. Não acho que essa abordagem seja dimensionada ao incorporar o aplicativo em mais sites.

Minha primeira idéia para uma implementação mais geral foi atualizar nosso aplicativo para o Angular 6 e criar um componente da web com um elemento personalizado, mas precisamos oferecer suporte ao IE11 e Edge que não suportam encapsulamento nativo, portanto, precisamos testar nosso aplicativo em todos os sites em que é usado, para garantir que eles não estejam quebrando nossos estilos, também não sei se um componente da Web pode gerenciar rotas filho ou não.

Outra idéia é usar um iframe, mas o meu problema aqui é o redimensionamento do iframe para se adaptar ao conteúdo e como adicionar rotas filho no aplicativo 'host' a partir do aplicativo 'residente' dentro do ifram

Existe uma maneira melhor de conseguir o que precisamos fazer?

A solução ideal deve permitir que nosso aplicativo seja usado em vários sites (cada um fornecendo configuração específica) sem que tenhamos que saber sobre o site usando nosso aplicativo.

Obrigado pela ajuda

questionAnswers(3)

yourAnswerToTheQuestion