O Que É o Rollup? O Bundler de Módulos JavaScript Explicado
O Rollup é um bundler JavaScript que se destaca em produzir saída pequena, limpa e com tree-shaking, o que o torna favorito para bibliotecas e o motor por trás dos builds de produção do Vite.
O Rollup popularizou o tree-shaking, a prática de descartar código que nunca é usado, apoiando-se na análise estática de módulos ES. Ele produz bundles enxutos em múltiplos formatos, e é por isso que é o bundler preferido para publicar bibliotecas e o bundler de produção dentro do Vite.
O que o Rollup é
O Rollup é um bundler de módulos para JavaScript que pega módulos ES e os combina em um único arquivo ou um pequeno conjunto de arquivos. Ele gera saída em vários formatos (ESM, CommonJS, UMD) para que uma biblioteca possa ser distribuída para muitos consumidores, e é estendido através de uma API de plugins focada.
Tree-shaking e saída limpa
Como os módulos ES são analisáveis estaticamente, o Rollup consegue determinar quais exports são realmente usados e excluir o resto, produzindo bundles menores. Ele também tende a gerar saída plana e legível, sem o boilerplate de wrapper que bundlers mais pesados adicionam, o que importa ao distribuir uma biblioteca que outros vão inspecionar.
Um exemplo de config
Uma config de biblioteca emite múltiplos formatos a partir de um único input.
export default {
input: "src/index.js",
output: [
{ file: "dist/lib.cjs", format: "cjs" },
{ file: "dist/lib.mjs", format: "es" }
]
};Papel no CI/CD
No CI, o Rollup constrói os artifacts distribuíveis de uma biblioteca antes de publicar, ou roda como o bundler de produção do Vite para aplicações. O passo de build faz parte do pipeline de release, muitas vezes seguido por um publish no npm. Fazer cache de node_modules e reutilizar a saída de build onde possível mantém esses passos rápidos.
Alternativas
O Webpack tem mais recursos para aplicações complexas, mas é mais pesado. O esbuild é mais rápido, mas produz saída menos otimizada para publicação de bibliotecas. O tsup encapsula o esbuild para builds simples de bibliotecas. O Rollup continua sendo a escolha preferida quando a qualidade da saída e o tree-shaking importam, como na distribuição de bibliotecas.
Principais conclusões
- O Rollup produz bundles pequenos, limpos e com tree-shaking em múltiplos formatos.
- É o padrão para publicar bibliotecas e alimenta os builds de produção do Vite.
- No CI ele constrói os artifacts de release, muitas vezes logo antes de publicar no npm.