Em março de 2026 o Vite 8 saiu do beta com uma mudança estrutural: substituiu a dupla esbuild (dev) + Rollup (produção) por um único bundler, o Rolldown, escrito em Rust. A promessa é de 10 a 30x de ganho em builds completos, e depois de rodar essa combinação em produção neste próprio site, dá pra confirmar: o ganho é real, mas a migração tem armadilhas específicas que a maioria dos guias não menciona.
Fonte: vite.dev/blog — 'Vite 8.0 is out!' (março/2026) e 'Vite 8.1 is out!' (releases subsequentes). O Rolldown é um bundler compatível com a API do Rollup mas desenhado desde o início para também substituir o papel do esbuild — unificando as duas ferramentas que o Vite historicamente combinava.
O que muda tecnicamente
- Um bundler só: sem mais esbuild pro dev server e Rollup pra build de produção — o Rolldown cobre os dois papéis
- Transforms via Oxc (também em Rust) e Lightning CSS, no lugar do PostCSS puro em alguns caminhos
- API de plugin compatível com Rollup na maioria dos casos, mas plugins que dependem de hooks internos ou de comportamento específico do esbuild podem quebrar silenciosamente
- Builds de 10 a 30x mais rápidos em projetos grandes — o ganho é proporcional ao tamanho do grafo de módulos, então projetos pequenos sentem menos diferença
O que quebrou na migração real
Três configurações costumam quebrar sem aviso claro: plugins que manipulam a saída via hooks específicos do Rollup que o Rolldown ainda não replica 1:1, opções de manualChunks com lógica muito específica de código de terceiros, e transforms customizados de CSS que assumiam o comportamento do PostCSS puro. Nenhum desses é um bug do Vite 8 — é o preço esperado de trocar a implementação por baixo de uma API que parecia estável.
# Migração recomendada: passo intermediário com rolldown-vite
# antes de saltar direto pro Vite 8
npm install rolldown-vite@latest
# valida se o projeto builda igual com Rolldown, ainda na API do Vite 7
# depois do rolldown-vite passar limpo:
npm install vite@8Por que travamos uma versão específica do Rolldown
Neste projeto, o pnpm-workspace.yaml trava explicitamente uma versão do Rolldown com um comentário direto: 'vite 8.2.0 aceita rolldown ~1.2.0; a 1.2.2 foi publicada 10h antes desta atualização. Segurar em 1.2.1 (5 dias) pelo mesmo motivo do commit anterior — remover este pin na próxima atualização deliberada, uma vez que a 1.2.x tenha amadurecido'. É a mesma lógica de minimumReleaseAge do post sobre o Shai-Hulud: numa ferramenta nova, dar alguns dias de idade a cada versão antes de adotá-la reduz a chance de herdar uma regressão — ou pior, uma versão comprometida — publicada há poucas horas.
Rolldown ainda é jovem (menos de dois anos de vida pública) e o próprio time do Vite recomenda o caminho intermediário via rolldown-vite antes do salto direto para o Vite 8 em projetos grandes. Não pule a etapa de validação em CI achando que 'é só trocar a versão'.
Se o seu build de produção já passa de 30 segundos, o Vite 8 provavelmente compensa o esforço de migração. Se passa de 2 minutos, o ganho de tempo de CI sozinho já paga a tarde investida em ajustar os três ou quatro pontos de atrito que a troca de bundler costuma expor.