Crie um portal para microfrontends usando Angular e AWS Amplify Module Federation - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie um portal para microfrontends usando Angular e AWS Amplify Module Federation

Criado por Milena Godau (AWS) e Pedro Garcia () AWS

Repositório de código: Angular Micro-Frontend Portal

Ambiente: PoC ou piloto

Tecnologias: aplicativos web e móveis; infraestrutura; rede; modernização

Workload: código aberto

AWSserviços: AWS Amplify; AWS CLI

Resumo

Uma arquitetura de microfront-end permite que várias equipes trabalhem em diferentes partes de um aplicativo de front-end de forma independente. Cada equipe pode desenvolver, criar e implantar um fragmento do front-end sem interferir em outras partes do aplicativo. Do ponto de vista do usuário final, parece ser um aplicativo único e coeso. No entanto, eles estão interagindo com vários aplicativos independentes publicados por equipes diferentes.

Este documento descreve como criar uma arquitetura de micro-frontend usando AWS Amplifya estrutura de front-end Angular e a Federação de Módulos. Nesse padrão, os microfrontends são combinados no lado do cliente por um aplicativo shell (ou pai). O aplicativo shell atua como um contêiner que recupera, exibe e integra os microfront-ends. O aplicativo shell manipula o roteamento global, que carrega diferentes microfront-ends. O plug-in @angular -architects/module-federation integra a Federação de Módulos com o Angular. Você implanta o aplicativo shell e os microfrontends usando o. AWS Amplify Os usuários finais acessam o aplicativo por meio de um portal baseado na web.

O portal está dividido verticalmente. Isso significa que os microfront-ends são visualizações inteiras ou grupos de visualizações, em vez de partes da mesma visualização. Portanto, o aplicativo shell carrega apenas um micro-frontend por vez.

Os microfront-ends são implementados como módulos remotos. O aplicativo shell carrega lentamente esses módulos remotos, o que adia a inicialização do microfrontend até que seja necessária. Essa abordagem otimiza o desempenho do aplicativo carregando somente os módulos necessários. Isso reduz o tempo de carregamento inicial e melhora a experiência geral do usuário. Além disso, você compartilha dependências comuns entre os módulos por meio do arquivo de configuração do webpack (webpack.config.js). Essa prática promove a reutilização de código, reduz a duplicação e simplifica o processo de agrupamento.

Pré-requisitos e limitações

Pré-requisitos

Versões do produto

  • Angular CLI versão 13.1.2 ou posterior

  • @angular -architects/module-federation versão 14.0.1 ou posterior

  • webpack versão 5.4.0 ou posterior

  • AWS Amplify Geração 1

Limitações

Uma arquitetura de microfrontend é uma abordagem poderosa para criar aplicativos web escaláveis e resilientes. No entanto, é fundamental entender os seguintes desafios em potencial antes de adotar essa abordagem:

  • Integração — Um dos principais desafios é o aumento potencial da complexidade em comparação com front-ends monolíticos. Orquestrar vários microfront-ends, lidar com a comunicação entre eles e gerenciar dependências compartilhadas pode ser mais complexo. Além disso, pode haver uma sobrecarga de desempenho associada à comunicação entre os microfront-ends. Essa comunicação pode aumentar a latência e reduzir o desempenho. Isso precisa ser resolvido por meio de mecanismos eficientes de mensagens e estratégias de compartilhamento de dados.

  • Duplicação de código — Como cada microfrontend é desenvolvido de forma independente, existe o risco de duplicar o código para funcionalidades comuns ou bibliotecas compartilhadas. Isso pode aumentar o tamanho geral do aplicativo e introduzir desafios de manutenção.

  • Coordenação e gerenciamento — Coordenar os processos de desenvolvimento e implantação em vários microfront-ends pode ser um desafio. Garantir o controle de versão consistente, o gerenciamento de dependências e a manutenção da compatibilidade entre os componentes se torna mais importante em uma arquitetura distribuída. Estabelecer uma governança clara, diretrizes e pipelines automatizados de teste e implantação é essencial para uma colaboração e entrega perfeitas.

  • Teste — Testar arquiteturas de microfront-end pode ser mais complexo do que testar front-ends monolíticos. Isso requer esforço adicional e estratégias de teste especializadas para realizar testes e end-to-end testes de integração entre componentes e validar experiências de usuário consistentes em vários microfront-ends.

Antes de se comprometer com a abordagem de microfrontend, recomendamos que você analise Compreendendo e implementando microfrontends em. AWS

Arquitetura

Em uma arquitetura de microfrontend, cada equipe desenvolve e implanta recursos de forma independente. A imagem a seguir mostra como várias DevOps equipes trabalham juntas. A equipe do portal desenvolve o aplicativo shell. O aplicativo shell atua como um contêiner. Ele recupera, exibe e integra os aplicativos de microfront-end publicados por outras equipes. DevOps Você usa AWS Amplify para publicar o aplicativo shell e os aplicativos de microfrontend.

Publicar vários microfront-ends em um aplicativo shell que o usuário acessa por meio de um portal da web.

O diagrama da arquitetura mostra o seguinte fluxo de trabalho:

  1. A equipe do portal desenvolve e mantém o aplicativo shell. O aplicativo shell orquestra a integração e a renderização dos microfront-ends para compor o portal geral.

  2. As equipes A e B desenvolvem e mantêm um ou mais microfront-ends ou recursos integrados ao portal. Cada equipe pode trabalhar de forma independente em seus respectivos microfront-ends.

  3. O usuário final se autentica usando o Amazon Cognito.

  4. O usuário final acessa o portal e o aplicativo shell é carregado. Conforme o usuário navega, o aplicativo shell lida com o roteamento e recupera o micro-frontend solicitado, carregando seu pacote.

Ferramentas

Serviços da AWS

  • AWS Amplifyé um conjunto de ferramentas e recursos específicos que ajudam desenvolvedores front-end da Web e de dispositivos móveis a criar rapidamente aplicativos completos em. AWS Nesse padrão, você usa o Amplify CLI para implantar os aplicativos de micro-frontend do Amplify.

  • AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto que ajuda você a interagir Serviços da AWS por meio de comandos em seu shell de linha de comando.

Outras ferramentas

  • @angular -architects/module-federation é um plugin que integra o Angular com o Module Federation.

  • O Angular é uma estrutura de aplicativos web de código aberto para criar aplicativos de página única modernos, escaláveis e testáveis. Ele segue uma arquitetura modular e baseada em componentes que promove a reutilização e a manutenção do código.

  • O Node.js é um ambiente de JavaScript tempo de execução orientado a eventos projetado para criar aplicativos de rede escaláveis.

  • O npm é um registro de software executado em um ambiente Node.js e usado para compartilhar ou emprestar pacotes e gerenciar a implantação de pacotes privados.

  • O Webpack Module Federation ajuda você a carregar código compilado e implantado de forma independente, como microfront-ends ou plug-ins, em um aplicativo.

Repositório de código

O código desse padrão está disponível no portal Micro-frontend usando o repositório Angular e Module Federation GitHub . Esse repositório contém as duas pastas a seguir:

  • shell-appcontém o código para o aplicativo shell.

  • feature1-appcontém uma amostra de micro-frontend. O aplicativo shell busca esse micro-frontend e o exibe como uma página dentro do aplicativo do portal.

Práticas recomendadas

As arquiteturas de microfront-end oferecem inúmeras vantagens, mas também introduzem complexidade. A seguir estão algumas das melhores práticas para um desenvolvimento tranquilo, código de alta qualidade e uma ótima experiência do usuário:

  • Planejamento e comunicação — Para agilizar a colaboração, invista em planejamento antecipado, design e canais de comunicação claros.

  • Consistência do design — aplique um estilo visual consistente em microfront-ends usando sistemas de design, guias de estilo e bibliotecas de componentes. Isso proporciona uma experiência de usuário coesa e acelera o desenvolvimento.

  • Gerenciamento de dependências — Como os microfrontends evoluem de forma independente, adote contratos padronizados e estratégias de controle de versão para gerenciar dependências de forma eficaz e evitar problemas de compatibilidade.

  • Arquitetura de microfrontend — Para permitir o desenvolvimento e a implantação independentes, cada microfrontend deve ter uma responsabilidade clara e bem definida por uma funcionalidade encapsulada.

  • Integração e comunicação — Para facilitar a integração e minimizar conflitos, defina contratos e protocolos de comunicação claros entre microfront-endsAPIs, incluindo eventos e modelos de dados compartilhados.

  • Teste e garantia de qualidade — Implemente pipelines de automação de testes e integração contínua para microfront-ends. Isso melhora a qualidade geral, reduz o esforço de teste manual e valida a funcionalidade entre as interações de microfront-end.

  • Otimização de desempenho — monitore continuamente as métricas de desempenho e acompanhe as dependências entre microfront-ends. Isso ajuda você a identificar gargalos e manter o desempenho ideal do aplicativo. Use ferramentas de monitoramento de desempenho e análise de dependências para essa finalidade.

  • Experiência do desenvolvedor — Concentre-se na experiência do desenvolvedor fornecendo documentação, ferramentas e exemplos claros. Isso ajuda você a otimizar o desenvolvimento e integrar novos membros da equipe.

Épicos

TarefaDescriçãoHabilidades necessárias

Crie o aplicativo shell.

  1. No AngularCLI, insira o seguinte comando:

    ng new shell --routing
  2. Digite o comando a seguir para navegar até a pasta do projeto:

    cd shell

    Nota: A estrutura de pastas e projetos para os aplicativos shell e micro-frontend pode ser totalmente independente. Eles podem ser tratados como aplicativos angulares independentes.

Desenvolvedor de aplicativos

Instale o plug-in .

No AngularCLI, insira o seguinte comando para instalar o plug-in @angular -architects/module-federation:

ng add @angular-architects/module-federation --project shell --port 4200
Desenvolvedor de aplicativos

Adicione o microfrontend URL como uma variável de ambiente.

  1. Abra o arquivo environment.ts.

  2. Adicione mfe1URL: 'http://localhost:5000' ao environment objeto:

    export const environment = { production: false, mfe1URL: 'http://localhost:5000', };
  3. Salve e feche o arquivo environment.ts.

Desenvolvedor de aplicativos

Defina o roteamento.

  1. Abra o arquivo app-routing.module.ts.

  2. No AngularCLI, insira o seguinte comando para importar o loadRemoteModule módulo do plug-in @angular -architects/module-federation:

    import { loadRemoteModule } from '@angular-architects/module-federation';
  3. Defina a rota padrão da seguinte forma:

    { path: '', pathMatch: 'full', redirectTo: 'mfe1' },
  4. Defina a rota para o micro-frontend:

    { path: 'mfe1', loadChildren: () => loadRemoteModule({ type: 'module', remoteEntry: `${environment.mfe1URL}/remoteEntry.js`, exposedModule: './Module' }) .then(m => m.Mfe1Module) },
  5. Salve e feche o arquivo app-routing.module.ts.

Desenvolvedor de aplicativos

Declare o mfe1 módulo.

  1. Na src pasta, crie um novo arquivo chamado decl.d.ts.

  2. Abra o arquivo decl.d.ts.

  3. Adicione o seguinte ao arquivo:

    declare module 'mfe1/Module';
  4. Salve e feche o arquivo decl.d.ts.

Desenvolvedor de aplicativos

Prepare o pré-carregamento para o micro-frontend.

O pré-carregamento do micro-frontend ajuda o webpack a negociar adequadamente as bibliotecas e pacotes compartilhados.

  1. Abra o arquivo main.ts.

  2. Substitua o conteúdo pelo seguinte:

    import { loadRemoteEntry } from '@angular-architects/module-federation'; Promise.all([ loadRemoteEntry(`${environment.mfe1URL}/remoteEntry.js`, 'mfe1'), ]) .catch(err => console.error('Error loading remote entries', err)) .then(() => import('./bootstrap')) .catch(err => console.error(err));
  3. Salve e feche o arquivo main.ts.

Desenvolvedor de aplicativos

Ajuste o HTML conteúdo.

  1. Abra o arquivo app.component.html.

  2. Substitua o conteúdo pelo seguinte:

    <h1>Shell application is running!</h1> <router-outlet></router-outlet>
  3. Salve e feche o arquivo app.component.html.

Desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Crie o microfrontend.

  1. No AngularCLI, insira o seguinte comando:

    ng new mfe1 --routing
  2. Digite o comando a seguir para navegar até a pasta do projeto:

    cd mfe1
Desenvolvedor de aplicativos

Instale o plug-in .

Digite o comando a seguir para instalar o plug-in @angular -architects/module-federation:

ng add @angular-architects/module-federation --project mfe1 --port 5000
Desenvolvedor de aplicativos

Crie um módulo e um componente.

Insira os seguintes comandos para criar um módulo e um componente e exportá-los como módulo de entrada remota:

ng g module mfe1 --routing ng g c mfe1
Desenvolvedor de aplicativos

Defina o caminho de roteamento padrão.

  1. Abra o arquivo mfe-routing.module.ts.

  2. Defina a rota padrão da seguinte forma:

    { path: '', component: Mfe1Component },
  3. Salve e feche o arquivo mfe-routing.module.ts.

Desenvolvedor de aplicativos

Adicione a mfe1 rota.

  1. Abra o arquivo app-routing.module.ts.

  2. Defina a rota padrão da seguinte forma:

    { path: '', pathMatch: 'full', redirectTo: 'mfe1' },
  3. Adicione a seguinte mfe1 rota:

    { path: 'mfe1', loadChildren: () => import('./mfe1/mfe1.module').then((m) => m.Mfe1Module), },
  4. Salve e feche o arquivo app-routing.module.ts.

Desenvolvedor de aplicativos

Edite o arquivo webpack.config.js.

  1. Abra o arquivo webpack.config.js.

  2. Edite a For remotes seção para que corresponda ao seguinte:

    // For remotes (please adjust) name: "mfe1", filename: "remoteEntry.js", exposes: { './Module': './src/app/mfe1/mfe1.module.ts', },
  3. Na shared seção, adicione todas as dependências que o mfe1 aplicativo compartilha com o aplicativo shell:

    shared: share({ "@angular/core": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, "@angular/common": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, "@angular/common/http": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, "@angular/router": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, ...sharedMappings.getDescriptors() })
  4. Salve e feche o arquivo webpack.config.js.

Desenvolvedor de aplicativos

Ajuste o HTML conteúdo.

  1. Abra o arquivo app.component.html.

  2. Substitua o conteúdo pelo seguinte:

    <router-outlet></router-outlet>
  3. Salve e feche o arquivo app.component.html.

Desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Execute o mfe1 aplicativo.

  1. Digite o comando a seguir para iniciar o mfe1 aplicativo:

    npm start
  2. Em um navegador da web, acessehttp://localhost:5000.

  3. Verifique se o micro-frontend pode ser executado de forma independente. O mfe1 aplicativo deve ser renderizado corretamente sem erros.

Desenvolvedor de aplicativos

Execute o aplicativo shell.

  1. Digite o comando a seguir para iniciar o aplicativo shell:

    npm start
  2. Em um navegador da web, acessehttp://localhost:4200/mfe1.

  3. Verifique se o mfe1 microfrontend está incorporado no aplicativo shell. O aplicativo do portal deve ser renderizado adequadamente, sem erros, e o mfe1 aplicativo deve ser incorporado a ele.

Desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Crie um módulo e um componente.

Na pasta raiz do aplicativo shell, insira os seguintes comandos para criar um módulo e um componente para uma página de erro:

ng g module error-page --routing ng g c error-page
Desenvolvedor de aplicativos

Ajuste o HTML conteúdo.

  1. Abra o arquivo error-page.component.html.

  2. Substitua o conteúdo pelo seguinte:

    <p>Sorry, this page is not available.</p>
  3. Salve e feche o arquivo error-page.component.html.

Desenvolvedor de aplicativos

Defina o caminho de roteamento padrão.

  1. Abra o arquivo error-page-routing.module.ts.

  2. Defina a rota padrão da seguinte forma:

    { path: '', component: ErrorPageComponent },
  3. Salve e feche o error-page-routingarquivo .module.ts.

Desenvolvedor de aplicativos

Crie uma função para carregar microfrontends.

  1. Abra o arquivo app-routing.module.ts.

  2. Crie a seguinte função:

    function loadMFE(url: string) { return loadRemoteModule({ type: 'module', remoteEntry: `${url}/remoteEntry.js`, exposedModule: './Module' }) .then(m => m.Mfe1Module) .catch( () => import('./error-page/error-page.module').then(m => m.ErrorPageModule) ); }
  3. Modifique a mfe1 rota para ser a seguinte:

    { path: 'mfe1', loadChildren: () => loadMFE(environment.mfe1URL) },
  4. Salve e feche o arquivo app-routing.module.ts.

Desenvolvedor de aplicativos

Teste o tratamento de erros.

  1. Se ainda não estiver em execução, digite o seguinte comando para iniciar o aplicativo shell:

    npm start
  2. Em um navegador da web, acessehttp://localhost:4200/mfe1.

  3. Verifique se a página de erro foi renderizada. Você deve ver o seguinte texto:

    Sorry, this page is not available.
Desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Implante o microfrontend.

  1. No AmplifyCLI, navegue até a pasta raiz do aplicativo de microfront-end.

  2. Digite o seguinte comando para inicializar o Amplify:

    amplify init
  3. Quando você for solicitado a inserir um nome para seu projeto do Amplify, pressione Enter. Isso reutiliza o nome do arquivo package.json.

  4. Quando você for solicitado a inicializar o projeto com a configuração acima, insira. Yes

  5. Quando você for solicitado a selecionar um método de autenticação, escolhaAWS Profile.

  6. Selecione o perfil que você deseja usar.

  7. Aguarde até que o Amplify inicialize o projeto. Quando esse processo for concluído, você receberá uma mensagem de confirmação no terminal.

  8. Insira o comando a seguir para adicionar uma categoria de hospedagem do Amplify ao micro-frontend:

    amplify add hosting
  9. Quando você for solicitado a selecionar o módulo do plug-in, escolhaHosting with Amplify Console.

  10. Quando você for solicitado a escolher um tipo, escolhaManual deployment.

  11. Instale as dependências do npm do projeto digitando o seguinte comando:

    npm install
  12. Publique o aplicativo no console do Amplify digitando o seguinte comando:

    amplify publish -y

    Quando a publicação estiver concluída, o Amplify retornará o URL microfrontend.

  13. Copie URL o. Você precisa desse valor para atualizar o aplicativo shell.

Desenvolvedor de aplicativos, AWS DevOps

Implante o aplicativo shell.

  1. Na pasta src/app/environments, abra o arquivo environments.prod.ts.

  2. Substitua o mfe1URL valor pelo URL do microfrontend implantado:

    export const environment = { production: true, mfe1URL: 'https://<env>.<Amplify-app-ID>.amplifyapp.com' };
  3. Salve e feche o arquivo environments.prod.ts.

  4. No AmplifyCLI, navegue até a pasta raiz do aplicativo shell.

  5. Digite o seguinte comando para inicializar o Amplify:

    amplify init
  6. Quando você for solicitado a inserir um nome para seu projeto do Amplify, pressione Enter. Isso reutiliza o nome do arquivo package.json.

  7. Quando você for solicitado a inicializar o projeto com a configuração acima, insira. Yes

  8. Quando você for solicitado a selecionar um método de autenticação, escolhaAWS Profile.

  9. Selecione o perfil que você deseja usar.

  10. Aguarde até que o Amplify inicialize o projeto. Quando esse processo for concluído, você receberá uma mensagem de confirmação no terminal.

  11. Adicione uma categoria de hospedagem Amplify ao aplicativo shell:

    amplify add hosting
  12. Quando você for solicitado a selecionar o módulo do plug-in, escolhaHosting with Amplify Console.

  13. Quando você for solicitado a escolher um tipo, escolhaManual deployment.

  14. Instale as dependências do npm do projeto digitando o seguinte comando:

    npm install
  15. Publique o aplicativo shell no console do Amplify digitando o seguinte comando:

    amplify publish -y

    Quando a publicação estiver concluída, o Amplify retorna o URL do aplicativo shell implantado.

  16. Anote o URL para o aplicativo shell.

Desenvolvedor do aplicativo, proprietário do aplicativo

HabilitarCORS.

Como os aplicativos shell e microfrontend são hospedados de forma independente em domínios diferentes, você deve habilitar o compartilhamento de recursos de origem cruzada (CORS) no microfrontend. Isso permite que o aplicativo shell carregue o conteúdo de uma origem diferente. Para habilitarCORS, você adiciona cabeçalhos personalizados.

  1. No AmplifyCLI, navegue até a pasta raiz do micro-frontend.

  2. Digite o comando :

    amplify configure hosting
  3. Quando você for solicitado a definir configurações personalizadas, digiteY.

  4. Faça login no e AWS Management Console, em seguida, abra o console do Amplify.

  5. Escolha o micro-frontend.

  6. No painel de navegação, escolha Hospedagem e, em seguida, escolha Cabeçalhos personalizados.

  7. Selecione a opção Editar.

  8. Na janela Editar cabeçalhos personalizados, digite o seguinte:

    customHeaders: - pattern: '*.js' headers: - key: Access-Control-Allow-Origin value: '*' - key: Access-Control-Allow-Methods value: 'GET, OPTIONS' - key: Access-Control-Allow-Headers value: '*'
  9. Escolha Salvar.

  10. Reimplante o microfrontend para aplicar os novos cabeçalhos personalizados.

Desenvolvedor de aplicativos, AWS DevOps

Crie uma regra de reescrita no aplicativo shell.

O aplicativo Angular shell está configurado para usar HTML5 roteamento. Se o usuário fizer uma atualização forçada, o Amplify tentará carregar uma página a partir da atual. URL Isso gera um erro 403. Para evitar isso, você adiciona uma regra de reescrita no console do Amplify.

Para criar a regra de regravação, siga estas etapas:

  1. No AmplifyCLI, navegue até a pasta raiz do aplicativo shell.

  2. Digite o comando :

    amplify configure hosting
  3. Quando você for solicitado a definir configurações personalizadas, digiteY.

  4. Abra o console do Amplify.

  5. Escolha o aplicativo shell.

  6. No painel de navegação, escolha Hospedagem e, em seguida, escolha Regravações e redirecionamentos.

  7. Na página Regravações e redirecionamentos, escolha Gerenciar redirecionamentos.

  8. Escolha Abrir editor de texto.

  9. No JSON editor, insira o seguinte redirecionamento:

    [ { "source": "/<*>", "target": "/index.html", "status": "404-200", "condition": null } ]
  10. Escolha Salvar.

Desenvolvedor de aplicativos, AWS DevOps

Teste o portal da web.

  1. Em um navegador da Web, insira o URL do aplicativo shell implantado.

  2. Verifique se o aplicativo shell e o microfrontend estão carregados corretamente.

Desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Exclua os aplicativos.

Se você não precisar mais do shell e dos aplicativos de microfrontend, exclua-os. Isso ajuda a evitar cobranças por recursos que você não está usando.

  1. Faça login no e AWS Management Console, em seguida, abra o console do Amplify.

  2. Escolha o micro-frontend.

  3. No painel de navegação, escolha Configurações do aplicativo e, em seguida, escolha Configurações gerais.

  4. Escolha Excluir aplicativo.

  5. Na janela de confirmaçãodelete, insira e escolha Excluir aplicativo.

  6. Repita essas etapas para excluir o aplicativo shell.

Geral AWS

Solução de problemas

ProblemaSolução

Nenhum AWS perfil disponível ao executar o amplify init comando

Se você não tiver um AWS perfil configurado, ainda poderá continuar com o amplify init comando. No entanto, você precisa selecionar a AWS access keys opção quando for solicitado o método de autenticação. Tenha sua chave de AWS acesso e chave secreta disponíveis.

Como alternativa, você pode configurar um perfil nomeado para AWS CLI o. Para obter instruções, consulte Configurações e configurações do arquivo de credenciais na AWS CLI documentação.

Erro ao carregar entradas remotas

Se você encontrar um erro ao carregar as entradas remotas no arquivo main.ts do aplicativo shell, verifique se a environment.mfe1URL variável está definida corretamente. O valor dessa variável deve ser o URL do microfrontend.

Erro 404 ao acessar o micro-frontend

Se você receber um erro 404 ao tentar acessar o micro-frontend local, como emhttp://localhost:4200/mfe1, verifique o seguinte:

  • Para o aplicativo shell, verifique se a configuração de roteamento no arquivo app-routing.module.ts está configurada corretamente e se a função está chamando corretamente o microfrontend. loadRemoteModule

  • Para o micro-frontend, verifique se o arquivo webpack.config.js tem a exposes configuração correta e se o arquivo.js está sendo gerado corretamente. remoteEntry

Mais informações

AWS documentação

Outras referências