Vite 8 вышел в марте с единым бандлером на базе Rolldown, а 23 июня появился релиз 8.1 — уже с первыми серьёзными надстройками. Еженедельные загрузки инструмента перевалили за 41,6 млн и почти догнали суммарные показатели Vite 7.
Поиграть с новинкой можно прямо сейчас: pnpm create vite или онлайн через vite.new.
Экспериментальный Bundled Dev Mode
Раньше эту идею называли «Full Bundle Mode» — теперь она добралась до релиза под флагом experimental.
Vite исторически строился на принципе unbundled-сервера: каждый модуль отдаётся браузеру отдельно, без сборки. Это работало отлично, пока проекты были небольшими. Но когда приложение разрастается до тысяч модулей, браузер вынужден делать сотни параллельных запросов — и старт, и полный reload начинают ощутимо тормозить. Особенно больно, если разработчик работает за прокси.
Bundled Dev Mode объединяет лучшее из обоих подходов:
- Быстрый старт даже на больших приложениях
- Меньше сетевых запросов при перезагрузке страницы
- Мгновенный HMR поверх ESM-вывода
В тестах на приложении с 10 000 React-компонентов режим показал:
- ~15× быстрее запуск dev-сервера
- ~10× быстрее полный reload
Команда Linear попробовала на реальном продукте и получила:
- cold start рендеринга — до 3× быстрее
- полные перезагрузки — примерно на 40% быстрее
- сетевых запросов — в 10 раз меньше
Включается через флаг CLI или в конфиге:
// vite.config.js
import { defineConfig } from 'vite'
export default defineConfig({
experimental: {
bundledDev: true,
},
})
Либо через --experimental-bundle при запуске.
Пока режим покрывает браузерную сторону и основные плагины. Часть сторонних плагинов и редких фич может не работать — команда активно расширяет поддержку.
Экспериментальный Chunk Import Map
Классическая проблема бандлинга: хеш в имени чанка зависит от содержимого, но если изменился вложенный чанк, его хеш меняется — и это каскадом перехеширует все чанки, которые его импортируют. В итоге браузерный кеш сбрасывается там, где ничего содержательно не изменилось.
Chunk Import Map решает это через механизм import maps: хеши вынесены в отдельную карту, и цепочки каскадных инвалидаций обрываются. Фича построена поверх возможностей Rolldown, но с поддержкой специфики Vite.
Важный нюанс: experimental.renderBuiltUrl пока не совместим с этой опцией.
WASM ESM Integration
Добавлена поддержка предложения WASM ESM integration — теперь WebAssembly-модули можно подключать через стандартный ESM-импорт, без лишних обёрток.
Lightning CSS движется к дефолту
Lightning CSS продолжает уверенно идти к тому, чтобы стать стандартным CSS-обработчиком в Vite. Пока не дефолт, но движение идёт именно туда 🦆

