WU vs Module Federation e single-spa
Avalie WU como alternativa para compor microfrontends: compare carregamento de módulos, ciclo de vida, comunicação e responsabilidades do shell.
Qual problema você está resolvendo
Se procura uma alternativa ao Module Federation, diferencie compartilhar módulos de coordenar aplicações completas. WU organiza aplicações por registro, carregamento e ciclo de vida, e oferece store, eventos e contratos. A escolha depende de onde você quer colocar a fronteira de integração.
A comparação a seguir descreve WU 4.0.0, o conceito de Module Federation documentado pelo webpack e o modelo de aplicações do single-spa. Não é um teste de desempenho nem uma comparação de todos os plugins dos seus ecossistemas.
Comparação de responsabilidades
| Decisão | WU Framework | Module Federation | single-spa |
|---|---|---|---|
| Unidade de integração | Aplicação com manifest e ciclo de vida | Módulos expostos e consumidos entre builds | Aplicação com carregamento, ativação e ciclo de vida |
| Montagem da interface | O host solicita mount/unmount ao WU | O consumidor decide como renderizar o módulo | O runtime ativa e monta as aplicações registradas |
| Dependências compartilhadas | Configuração explícita do build e do carregamento de WU | Configuração de módulos compartilhados e versões | Decisão do ambiente de carregamento e das aplicações |
| Dados entre aplicações | Store, eventos e contratos do runtime | Contrato definido pelos módulos e seus consumidores | Contrato definido pelas aplicações e utilitários compartilhados |
Fontes: Module Federation no webpack, modelo do single-spa e APIs de WU. Consulte a documentação da implementação específica se usar outro plugin de federação.
Quando avaliar WU como alternativa
Avalie WU quando quiser compor aplicações com um contrato comum de montagem e precisar de estado, eventos ou serviços entre elas. O critério é a composição e a comunicação, independentemente da tecnologia de cada aplicação. Comece por uma capacidade com limites claros e verifique a integração usando o guia de microfrontends.
O pacote inclui adapters para React, Vue, Angular, Svelte, Preact, Solid, Lit, Vanilla, Alpine, Qwik, Stencil, HTMX e Stimulus. Consulte os contratos na referência de adapters.
Para outra tecnologia, registre mount e unmount com wu.define, ou crie um adapter com createWuAdapter. O contrato comum permite conectar aplicações com o mesmo framework ou com frameworks diferentes.
Vale avaliar Module Federation quando você precisa consumir módulos de outros builds e gerenciar dependências compartilhadas nesse nível. Vale avaliar single-spa quando busca aplicações com regras de ativação e lifecycles em um root config. Nenhuma escolha elimina o projeto de contratos nem a operação dos deploys.
O que muda na migração
WU não interpreta automaticamente uma configuração de remotes do Module Federation nem um root config do single-spa. Identifique cada entrada, crie seu manifest, conecte o renderer ao ciclo de vida e mova as decisões globais para o shell. Defina como traduzirá os contratos de comunicação existentes e como voltará à versão anterior se uma entrega falhar.
O shell mantém as rotas globais; WU não expõe um router público. Também não presuma que executar módulos no mesmo contexto JavaScript cria uma fronteira de segurança. Essas responsabilidades são explicadas em arquitetura.
Um teste para decidir
Compare a mesma capacidade no seu ambiente: carregamento inicial, mudança de rota, atualização de dados, desmontagem, falha de rede e uma nova versão de dependência. Registre o tamanho transferido e os tempos com o mesmo navegador e condições de cache. Use o exemplo de comunicação e a saída de produção como ponto de partida para WU.