Vite традиційно використовував два окремі інструменти для компіляції. Для швидкої розробки застосовувався esbuild, а для оптимізованих продакшн-збірок — Rollup. Підтримка двох різних конвеєрів трансформацій створювала проблеми: дві системи плагінів, зростання допоміжного коду та накопичення невідповідностей у обробці модулів.
Перехід на Rolldown забезпечує колосальне прискорення
Vite 8 вирішує ці проблеми, замінюючи обидва інструменти на Rolldown. Цей новий бандлер на Rust дозволяє досягти прискорення збірки від 10 до 30 разів, зберігаючи повну сумісність із існуючою екосистемою плагінів Vite. Результати бета-тестування підтвердили значне підвищення продуктивності у реальних проєктах. Наприклад, компанія Linear зменшила час продакшн-збірки з 46 секунд до лише 6 секунд. Ramp повідомила про скорочення часу на 57%, а Beehiiv досяг покращення на рівні 64%.
Покращення досвіду розробника та екосистема
Крім інтеграції Rolldown, Vite 8 вносить низку змін для покращення робочого процесу. Вбудована підтримка шляхів tsconfig усуває необхідність використання плагінів-аліасів, якщо встановити `resolve.tsconfigPaths` у значення true. Також додано нативну підтримку `emitDecoratorMetadata`, що спрощує налаштування для таких фреймворків, як NestJS та Inversify.
Нові можливості для розробників
Vite 8 також впроваджує функцію пересилання консолі браузера (`server.forwardConsole`). Це дозволяє безпосередньо передавати клієнтські логи у термінал, що є надзвичайно корисним при роботі з AI-агентами для написання коду. Також випущено `@vitejs/plugin-react` версії 6, яка замінює Babel на Oxc для трансформацій React Refresh, зменшуючи розмір встановлення.
Порівняння та стратегія міграції
Vite 8 позиціонується як фреймворк-агностична альтернатива Turbopack, який залишається прив'язаним до екосистеми Next.js. Хоча інший Rust-бандлер Rspack пропонує сильну сумісність із Webpack, він не має такої широти плагінової екосистеми, як Vite. Для великих проєктів команда рекомендує поступовий підхід: спочатку перейти на пакет `rolldown-vite` у Vite 7 для ізоляції специфічних проблем Rolldown, а потім оновитися до Vite 8. Більшість проєктів можуть здійснити пряме оновлення без змін у конфігурації завдяки вбудованому шару сумісності, який автоматично конвертує існуючі опції esbuild та Rollup.
Перспективи розвитку інструментів на Rust
Обговорення на Reddit's r/rust підкреслює зростаючу роль мови Rust у JavaScript-інструментарії, оскільки Rolldown, Oxc та Lightning CSS написані саме на ній. Vite є відкритим вихідним інструментом збірки, який щотижня завантажують понад 65 мільйонів разів і підтримує такі фреймворки, як SvelteKit, Nuxt, Astro та React Router.