webpack vs Rollup: qual bundler para builds no CI?
O webpack é o bundler de apps peso-pesado com um vasto ecossistema de loaders/plugins; o Rollup é mais enxuto e preferido para saída de bibliotecas com tree-shaking.
O webpack é um bundler maduro e altamente configurável, feito para aplicações complexas, com loaders, code-splitting e um enorme ecossistema de plugins. O Rollup foca em saída limpa e com tree-shaking, sendo a escolha comum para publicar bibliotecas.
| webpack | Rollup | |
|---|---|---|
| Melhor para | Apps complexos | Bibliotecas, saída enxuta |
| Complexidade de configuração | Maior | Menor |
| Tree-shaking | Bom | Excelente |
| Ecossistema de plugins/loaders | O maior | Grande, maduro |
| Code-splitting | Maduro, flexível | Suportado |
No CI
O webpack lida com builds de aplicações complexas - muitos entry points, code-splitting avançado e loaders para todo tipo de asset - ao custo de uma configuração mais pesada e builds mais lentos. O Rollup produz bundles menores e bem tree-shaken com configuração mais simples, e é por isso que é o preferido para bibliotecas (e o motor por trás dos builds de produção do Vite). Escolha pelo alvo de saída: app vs biblioteca.
Deixe mais rápido
Faça cache do build e das dependências com chave no seu lockfile, e use cache persistente onde houver suporte. Ambos rodam em runners de CI; runners gerenciados mais rápidos reduzem o tempo total de builds pesados do webpack.
O veredito
Empacotando um app complexo com muitos tipos de asset e pontos de divisão: webpack. Publicando uma biblioteca ou querendo saída enxuta com tree-shaking: Rollup. Muitas equipes obtêm a saída do Rollup automaticamente via Vite.