0Pricing
HTML Academy · Aula

Fundamentos da federação de módulos

Entenda como a federação de módulos permite compartilhar microfrontends.

Fundamentos da federação de módulos é uma aula grátis de HTML Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de HTML Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de HTML Academy inclui 4 aulas no total.

O que é a Federação de Módulos?

A Federação de Módulos permite que uma aplicação JavaScript carregue e execute, em tempo de execução, código de outra aplicação implantada de forma independente. Originado no Webpack 5, esse padrão agora também é possível por meio de mapas de importações nativos e importação dinâmica.

O caso de uso

Grandes organizações dividem monólitos em várias "microaplicações de front-end" implantadas de forma independente — uma aplicação contêiner principal e várias aplicações de funcionalidades. A federação de módulos permite que o contêiner carregue cada funcionalidade sob demanda sem agrupá-las durante a compilação.

Federação do Webpack

No Webpack 5, o contêiner declara remotes (outras aplicações a serem consumidas) e as aplicações remotas declaram exposes (o que oferecem). O ambiente de execução busca um pequeno manifesto de cada aplicação remota na inicialização e baixa os blocos conforme o contêiner os importa.

Equivalentes nativos

Sem o Webpack, a mesma ideia funciona com mapas de importações que apontam para pacotes ESM remotos e com importação dinâmica para o carregamento. O mapa de importações do contêiner declara "feature-cart": "https://cart-team.example.com/entry.js"; import("feature-cart") carrega a versão implantada mais recente.

<script type="importmap">
{
  "imports": {
    "feature-cart": "https://cart.example.com/v1/entry.js",
    "feature-checkout": "https://checkout.example.com/v2/entry.js"
  }
}
</script>

Dependências compartilhadas

Sem coordenação, cada aplicação remota enviaria sua própria cópia do React. As ferramentas de federação permitem declarar dependências compartilhadas — a primeira aplicação remota a carregar o React o disponibiliza para todas as outras. As abordagens nativas usam mapas de importações para apontar todas as aplicações remotas para a mesma URL do React.

Implantação independente

Cada equipe é responsável por sua aplicação remota e faz a implantação quando quiser. O contêiner nunca precisa ser recompilado; ele obtém novas versões no próximo carregamento da página (ou por meio da invalidação de cache). Isso desacopla completamente os ciclos de lançamento.

Estratégias de versionamento

Fixe as aplicações remotas em URLs versionadas (/v1/entry.js, /v2/entry.js) para que uma atualização do contêiner seja intencional, e não implícita. Algumas equipes usam correspondência de semver no nível do mapa de importações por meio de ferramentas como JSPM.

Compensações

A federação acrescenta complexidade ao ambiente de execução: mais solicitações de rede, depuração mais difícil entre origens e o risco de dependências compartilhadas incompatíveis. Use-a quando você realmente precisar de implantação independente; para projetos menores, uma única compilação é mais simples e rápida.

Isolamento de erros

Um módulo remoto que falhe não deve derrubar a aplicação anfitriã. Envolva as importações dinâmicas em limites de erro (React) ou use tratamento de exceções (JavaScript puro) e renderize uma interface alternativa quando um módulo remoto falhar. O contêiner permanece funcional mesmo que um recurso fique temporariamente indisponível.

Segurança de tipos

As exportações remotas não têm informações de tipo em tempo de compilação na aplicação anfitriã. Gere tipos compartilhados do TypeScript em um pacote separado consumido por ambas as partes ou use validação em tempo de execução (Zod, io-ts) no limite da federação.

Federação nativa vs ferramentas

A federação nativa (mapas de importação + ESM) é mais simples e baseada em padrões, mas não conta com a coordenação de dependências compartilhadas do Webpack. Escolha Webpack/Module Federation para aplicações complexas com muitas dependências compartilhadas; escolha a opção nativa para arquiteturas mais simples de microaplicações.

Direção futura

O W3C está explorando primitivas mais avançadas de carregamento de módulos que tornariam a federação nativa mais capaz — incluindo uma negociação melhor de dependências compartilhadas. Hoje, trate os mapas de importação como a base e sobreponha suas ferramentas de federação.

Verificação de conhecimento

Qual é a principal motivação para usar o Module Federation em uma aplicação de grande porte?

Resumo

O Module Federation permite que uma aplicação anfitriã carregue código de módulos remotos implantados de forma independente durante a execução. As ferramentas do Webpack 5 acrescentam a negociação de dependências compartilhadas; a federação nativa usa mapas de importação e importação dinâmica. Use-o em arquiteturas de microaplicações com várias equipes; aceite a complexidade adicional em troca da liberdade de implantação independente.

Perguntas Frequentes

A aula “Fundamentos da federação de módulos” é grátis?

Sim — o texto completo de “Fundamentos da federação de módulos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de HTML Academy, atualize para CoddyKit PRO. O curso de HTML Academy inclui 4 aulas no total.

O que vou aprender em “Fundamentos da federação de módulos”?

Entenda como a federação de módulos permite compartilhar microfrontends. Você pratica HTML Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar HTML Academy?

Nenhuma experiência prévia é necessária. HTML Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Fundamentos da federação de módulos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de HTML Academy?

Sim. Cada aula de HTML Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Scripts de módulos ES type=module
  2. Mapas de importação importmap
  3. Importação dinâmica import() em módulos
  4. Fundamentos da federação de módulos
← Voltar para HTML Academy