Saltar al contenido
•6 min de lectura

Vite 8 y Rolldown: el stack VoidZero que quiere quedarse con tu build

46 segundos a 6. Ese es el build de producción de Linear después de migrar a Vite 8. Ramp reporta -57% en sus builds, Beehiiv -64%. La versión que hace eso posible salió el 12 de marzo de 2026 y trae el cambio arquitectónico más significativo desde Vite 2: Rolldown, un bundler escrito en Rust, reemplaza a esbuild y Rollup en un solo motor. - Fuente: Vite 8.0 is out!

Pero la historia grande no es una versión. Es que Vite, Rolldown, Oxc y Vitest ya pertenecen a un mismo equipo, y ese equipo es ahora parte de Cloudflare. Vamos por capas.

Vite 8: un solo bundler

Hasta Vite 7 vivías con dos motores: esbuild para dev y Rollup para producción. Cada uno con su config, sus comportamientos y sus diferencias de output. Vite 8 los fusiona: Rolldown (Rust) corre en ambos entornos y adopta la API de plugins de Rollup, así que la mayoría de tus plugins siguen funcionando sin tocarlos. - Fuente: Vite 8.0 is out!

Lo demás que cambió:

  • ESM-only. Vite 8 se distribuye solo como módulos ES, posible gracias a require(esm) sin flags. Node 20.19+ o 22.12+.
  • Devtools integrados vía opción devtools, y resolve.tsconfigPaths: true para los paths de tsconfig (opt-in, por su coste).
  • emitDecoratorMetadata nativo. Si vienes de NestJS o de Angular con decorators, adiós al plugin externo que lo simulaba.
  • server.forwardConsole reenvía la consola del navegador a tu terminal. Se activa solo si detecta un coding agent. En 2026, el toolchain sabe que la mitad de sus usuarios no son humanos.
  • +15 MB de instalación: ~10 MB de lightningcss (ahora dependencia normal) y ~5 MB del binario de Rolldown. El equipo lo publicó con todas sus letras; me parece honesto.

Los números, con su contexto

El benchmark de portada de Rolldown bundlea 19.000 módulos (10.000 componentes React + 9.000 archivos JS de iconos) con minificación y sourcemaps: Rolldown 1.61s, esbuild 1.70s, rspack 4.07s y Rollup+esbuild 40.10s. - Fuente: rolldown.rs

Sí: 40 segundos contra 1.6. El rango oficial que citan los anuncios de Vite 8 es conservador: 10-30x más rápido que Rollup. Ahora, una dosis de realidad del propio repo de benchmarks: en esas mismas pruebas, bun 1.4 es más rápido que Rolldown (822 ms vs 1597 ms), y el equipo te recomienda medir en tu hardware. - Fuente: rolldown/benchmarks

Los casos reales citados son los que importan: Linear 46s→6s, Ramp -57%, Mercedes-Benz.io -38%, Beehiiv -64%. Todos medidos sobre builds de producción durante la fase de preview. - Fuente: Vite 8.0 is out!

Vite 8.1: el fin de la era unbundled

Vite inventó el dev server sin bundlear: transforma cada módulo bajo demanda y el navegador pide lo que necesita. Brillante con 200 archivos, un desastre con 10.000: miles de peticiones por página y un cold start que castiga sobre todo a quien está detrás de un proxy corporativo.

Vite 8.1 (23 de junio de 2026) trae experimental.bundledDev, que sirve en desarrollo archivos bundleados, como en producción:

// vite.config.js
export default {
  experimental: {
    bundledDev: true,
  },
};

Los números hay que separarlos con cuidado: en el test sintético de 10.000 componentes, ~15x más rápido el arranque y ~10x el full reload. En producción real, el equipo de Linear midió cold start hasta 3x más rápido, full reloads ~40% más rápidos y 10x menos peticiones de red. - Fuente: Announcing Vite 8.1

El dashboard de Cloudflare ya usa Bundled Dev internamente, y también OpenCode desktop. Cuando la gente que construye la herramienta la usa en producción, el "experimental" gana credibilidad rápido. - Fuente: What's new in VoidZero, September 2026

También llegaron en 8.1: chunkImportMap (evita la cascada de re-hashing de chunks), imports ESM de Wasm (import { add } from './add.wasm') y trabajo con el equipo de Lightning CSS de cara a convertirlo en el preprocesador por defecto.

Oxc: el resto del stack

El bundler es solo una pieza. Oxc es el proyecto hermano que cubre parser, transformer, linter, formatter y minifier, todo en Rust. Tres datos que explican por qué la comunidad está mirando:

Los transforms de Babel ya tienen reemplazo. La prueba más dura: @vitejs/plugin-react v6 eliminó Babel como dependencia y usa Oxc para React Refresh. - Fuente: Vite 8.0 is out!

Oxlint corre type-aware linting con tsgo. Desde el 22 de julio de 2026, las reglas type-aware de typescript-eslint (59 de 61 cubiertas) corren sobre el TypeScript en Go de Microsoft, 12-18x más rápido que ESLint+typescript-eslint, compartiendo un único programa TypeScript para lint y type-check. - Fuente: Type-aware linting is stable. Es el mismo compilador nativo del que escribí en TypeScript 7 GA.

Y el React Compiler también. Oxc lo integró en Rust: más de 10x más rápido que babel-plugin-react-compiler (~100ms a ~10ms por archivo), verificado contra más de 100 repos y 100.000 archivos. - Fuente: React Compiler support in Oxc

Oxfmt, el formatter, declara 30x más rápido que Prettier en JS/TS (la cifra conservadora del suite completo, con JSON/CSS/YAML incluidos, es 7x). - Fuente: oxc.rs / VoidZero update

La historia VoidZero: de startup a Cloudflare

Evan You (Vue, Vite) fundó VoidZero en 2023 con una misión explícita: un toolchain unificado, del dev server al test runner. Levantó Seed y Series A lideradas por Accel, experimentó con una licencia mixta en Vite+, se arrepintió, lo publicó bajo MIT... y el 4 de junio de 2026 vendió la compañía a Cloudflare. - Fuente: VoidZero joins Cloudflare

Lo que quedó pactado importa más que el precio: los proyectos siguen MIT y vendor-agnostic, el equipo sigue liderando Vite/Vitest/Rolldown/Oxc, y Cloudflare comprometió un millón de dólares para un fondo open source del ecosistema Vite. En los primeros cuatro meses post-adquisición: más de 80 releases y 1.200 issues cerradas. - Fuente: VoidZero update

La escala del ecosistema, para dimensionar: Vite pasó de 65 millones de descargas semanales en el lanzamiento de Vite 8 (marzo 2026) a unas 129 millones en junio del mismo año. - Fuente: Vite 8.0, Cloudflare. Las cifras miden cosas distintas (paquete vs familia), pero la dirección es clara.

El stack completo, hoy: Vite (build) + Rolldown (bundler) + Oxc (compiler/linter/formatter) + Vitest (testing) + Vite+ (la toolchain unificada, 1.0 en septiembre de 2026). Un solo equipo con el contexto completo para optimizar en cruz: el análisis semántico de Oxc mejora el tree-shaking de Rolldown, el mismo parser sirve para lint y para transform. Es la apuesta de que el toolchain es un producto entero, no cuatro herramientas que se toleran.

¿Y Angular en todo esto?

Angular no construye sobre Vite, pero los puentes son visibles:

Traducción: cuando el compilador Angular sobre TS 7 llegue, Oxc ya estará debajo. Si te interesa ese hilo, lo cubrí en Angular y TypeScript 7 (tsgo).

Tips para migrar

  1. La ruta gradual: rolldown-vite primero. Es el paquete preview que puedes instalar sobre Vite 7 y probar sin migrar. Cuando tu app pase, salta a Vite 8. - Fuente: Vite 8.0 is out!
  2. No reescribas tu config: la capa de compatibilidad existe. Vite 8 auto-convierte opciones de esbuild y rollupOptions. Limpia después, no antes.
  3. Mide tu build, no el de Linear. Si tu build tarda 11 segundos, el 10-30x te lleva a 4 y a nadie le cambia el día. Donde esto importa es en monorepos y CI.
  4. bundledDev con plugins de terceros: con calma. Es experimental y algunos plugins aún no funcionan. Pruébalo en una rama.
  5. Actualiza @vitejs/plugin-react a v6 si estás en React: menos dependencias y el camino directo al React Compiler vía react({ compiler: true }).

¿Tu build de producción tarda más de 30 segundos? Ese número, con Vite 8, es negociable. Cuéntame en los comentarios.


> Más posts