Vite 8 и Rolldown: почему это самое важное обновление за четыре года

Vite 8 и Rolldown: почему это самое важное обновление за четыре года

Vite скачивают 65 миллионов раз в неделю. Это уже не инструмент для энтузиастов — это стандартная инфраструктура современного фронтенда. И 13 марта 2026 года эта инфраструктура получила самое значительное архитектурное обновление со времён Vite 2.

Главное изменение — замена двух бандлеров одним. Вместо связки esbuild + Rollup теперь работает Rolldown — единый бандлер на Rust, разработанный командой VoidZero. Это не просто оптимизация. Это смена фундамента.

Почему два бандлера было проблемой

Архитектура раннего Vite была прагматичным решением. esbuild обеспечивал молниеносную компиляцию во время разработки — предсборку зависимостей, трансформацию TypeScript и JSX. Rollup занимался продакшн-сборкой: разбиением на чанки, tree-shaking, оптимизацией. У каждого была своя зона ответственности, и несколько лет это работало хорошо.

Со временем накопились издержки. Два отдельных конвейера означали две системы плагинов и растущий объём склеивающего кода между ними. Возникали пограничные случаи: поведение модулей в dev-режиме расходилось с продакшном. Каждое исправление в одном конвейере рисковало создать расхождение в другом. Команда всё больше занималась синхронизацией двух систем вместо развития инструмента.

Два бандлера — это два источника истины. А два источника истины — это рано или поздно противоречие.

Что такое Rolldown

Rolldown разработан командой VoidZero — той же, что стоит за Vite — специально для решения описанных проблем. Три ключевых принципа:

Производительность через Rust

Rolldown написан на Rust и работает на нативной скорости. В бенчмарках он в 10–30 раз быстрее Rollup и при этом достигает уровня esbuild. Это не маркетинговые цифры — их подтвердили реальные проекты в период бета-тестирования.

Конкретные данные от компаний, тестировавших rolldown-vite до официального релиза:

  • Linear — время продакшн-сборки упало с 46 секунд до 6
  • Beehiiv — сокращение на 64%
  • Ramp — сокращение на 57%
  • Mercedes-Benz.io — сокращение до 38%

Совместимость с экосистемой

Rolldown реализует тот же plugin API что и Rollup и Vite. Большинство существующих плагинов работают без изменений — команда специально выстроила уровень совместимости, который автоматически конвертирует существующие конфиги esbuild и rollupOptions в их Rolldown-эквиваленты.

Новые возможности

Единый бандлер открывает то, что было технически сложно или невозможно при двух конвейерах:

  • Full Bundle Mode — объединение модулей в dev-режиме аналогично продакшну. Предварительные результаты: старт dev-сервера в 3 раза быстрее, полная перезагрузка на 40% быстрее, в 10 раз меньше сетевых запросов
  • Module Federation — встроенная поддержка без внешних плагинов
  • Персистентное кэширование на уровне модулей
  • Более гибкое разбиение на чанки

Единая цепочка инструментов

Rolldown — не изолированное изменение. Vite 8 становится точкой входа в связанный стек:

Vite (build tool) → Rolldown (bundler) → Oxc (compiler/parser)

Oxc — это Rust-компилятор и парсер JavaScript от той же команды. Глубокая интеграция между слоями позволяет то, что раньше было недостижимо: семантический анализ Oxc напрямую улучшает tree-shaking в Rolldown. Новые спецификации языка можно внедрять быстрее, потому что вся цепочка находится под контролем одной команды с согласованными целями.

Что ещё изменилось в Vite 8

Integrated Devtools

Новая опция devtools включает Vite Devtools — инструмент отладки и анализа, интегрированный прямо в dev-сервер. Дает более глубокое понимание того что происходит внутри проекта без сторонних расширений.

// vite.config.ts
export default {
  devtools: true
}

Встроенная поддержка tsconfig paths

Раньше для алиасов TypeScript нужен был отдельный плагин. Теперь достаточно одной строки в конфиге:

export default {
  resolve: {
    tsconfigPaths: true
  }
}

Небольшой перформанс-оверхед — поэтому по умолчанию выключено. Но для большинства проектов это избавляет от лишней зависимости.

emitDecoratorMetadata из коробки

Встроенная поддержка TypeScript-опции emitDecoratorMetadata — актуально для проектов на NestJS, Angular и других фреймворках с декораторами. Внешние плагины для этого больше не нужны.

Wasm в SSR

Импорты .wasm?init теперь работают в SSR-окружениях. Для Next.js и Nuxt-проектов использующих WebAssembly это закрывает давнее ограничение.

Forwarding консоли браузера

Vite 8 умеет пробрасывать логи и ошибки браузерной консоли в терминал dev-сервера:

export default {
  server: {
    forwardConsole: true
  }
}

Особенно полезно при работе с AI coding agents — ошибки клиента становятся видны в CLI без переключения контекста. При обнаружении агента функция активируется автоматически.

@vitejs/plugin-react v6

Выходит одновременно с Vite 8. Главное изменение — Babel убран из зависимостей. Трансформы React Refresh теперь выполняет Oxc. Установочный размер пакета уменьшился.

Проектам с React Compiler доступен reactCompilerPreset хелпер через @rolldown/plugin-babel — явный opt-in без влияния на дефолтные настройки.

При этом plugin-react v5 продолжает работать с Vite 8 — можно обновлять поэтапно.

Как мигрировать

Для большинства проектов процесс прямолинейный:

npm install vite@8 --save-dev

Уровень совместимости автоматически конвертирует существующие конфиги. Проверь Migration Guide перед обновлением — там описаны breaking changes.

Для крупных или сложных проектов рекомендуется двухшаговый путь:

  1. Переключись с vite на rolldown-vite в Vite 7 — изолируешь проблемы связанные с Rolldown
  2. После стабилизации обновись до Vite 8

Такой подход позволяет чётко разграничить: проблема связана со сменой бандлера или с другими изменениями в Vite 8.

Что дальше

Команда обозначила несколько направлений активной работы:

Full Bundle Mode переходит из эксперимента в основной путь. Предварительные результаты впечатляют, и для крупных проектов где небандлированный подход упирается в пределы масштабируемости — это будет принципиальное изменение.

Raw AST transfer позволит JS-плагинам получать доступ к AST, созданному Rust, с минимальными затратами на сериализацию. Это сблизит производительность Rust-внутренностей и JS-кода плагинов.

Стабилизация Environment API — экосистема уже начала регулярные встречи для координации.

Итог

Vite 8 — это не просто релиз с набором фич. Это точка перехода от инструмента-оркестратора к полноценной вертикально-интегрированной цепочке инструментов. VoidZero контролирует парсер, бандлер и build tool — что даёт редкую в опенсорсе возможность оптимизировать весь стек совместно.

Для большинства разработчиков переход будет незаметным: те же плагины, та же конфигурация, быстрее сборка. Для крупных проектов — это разница между минутами и секундами в каждом деплое.

Rollup и esbuild заложили фундамент. Rolldown строит на нём что-то новое.

9

13.03.2026

|

vite.dev
2026