Vite 8.1: новые возможности и улучшения — обзор релиза
Vite 8 вышел в марте — теперь в нём единый сборщик на базе Rolldown, что открывает возможности для дальнейших улучшений. Сейчас у Vite 8 около 41,6 миллиона загрузок в неделю — это почти столько же, сколько суммарно было у Vite 7. Помимо устранения регрессий, возникших при обновлении, мы работали над новыми функциями и рады объявить о выпуске Vite 8.1.

Журнал изменений на GitHub.
Попробуйте Vite 8.1 онлайн на vite.new или создайте локальное приложение на базе Vite с предпочитаемым фреймворком, выполнив команду pnpm create vite. Подробнее — в руководстве «Начало работы».
Мы приглашаем вас помочь в улучшении Vite (к проекту уже присоединились более 1200 контрибьюторов Vite Core), его зависимостей, плагинов и проектов в экосистеме. Подробнее — в руководстве по участию в разработке. Хороший способ начать: разбирать проблемы (issues), проверять пул‑реквесты, присылать PR с тестами на основе открытых проблем, помогать другим в обсуждениях или на форуме поддержки Vite Land. Если у вас есть вопросы — присоединяйтесь к нашему сообществу в Discord и общайтесь с нами в канале #contributing.
Будьте в курсе новостей и общайтесь с теми, кто строит решения на базе Vite: подписывайтесь на нас в Bluesky, X или Mastodon.
Возможности
Экспериментальный режим разработки со сборкой
Теперь доступна экспериментальная поддержка режима разработки со сборкой (ранее он назывался «Full Bundle Mode»). Этот режим призван повысить производительность огромных приложений, которые страдают из‑за большого количества модулей.
В наших первоначальных тестах с приложением, загружающим 10 000 React‑компонентов, режим со сборкой показал примерно в 15 раз более быстрый запуск и в 10 раз более быструю полную перезагрузку страницы по сравнению с несборным dev‑сервером — при этом HMR остаётся мгновенным независимо от размера приложения. Ранние тесты на реальных приложениях демонстрируют схожие результаты: команда Linear отметила, что холодный старт рендеринга стал до 3 раз быстрее, полная перезагрузка — примерно на 40 % быстрее, а количество сетевых запросов сократилось в 10 раз.
Сейчас режим ориентирован на браузерную часть, базовые плагины и основные функции. Если вы используете сторонний плагин, он может не работать в этом режиме. Если вы задействуете второстепенные функции, они также могут работать некорректно. Мы работаем над расширением поддержки и готовим документ, в котором разъясним, какие изменения могут потребоваться со стороны плагинов. Подробнее о дорожной карте — в проектном документе.
Чтобы включить этот режим, можно передать флаг --experimental-bundle либо добавить experimental.bundledDev: true в файл vite.config.js:

Экспериментальная карта импорта чанков
В выходном бандле инструкция импорта чанка включает хеш этого чанка. Это нужно, чтобы гарантировать загрузку нового чанка, если его содержимое изменилось. Однако из‑за этого также меняется хеш чанка, который импортирует изменённый чанк, — и это изменение каскадно распространяется на все чанки, транзитивно импортирующие изменённый чанк.
Экспериментальная функция карты импорта чанков решает эту проблему за счёт использования import maps и повышает эффективность кэширования. Эта функция построена на базе возможностей Rolldown, но дополнена поддержкой специфичных для Vite функций. Большое спасибо Taisei Mima за исследование и первоначальную реализацию этой функции!
Обнаружение ассетов для пользовательских HTML‑элементов и атрибутов
Раньше Vite обнаруживал ассеты только для заранее определённых элементов и атрибутов. Теперь вы можете использовать опцию html.additionalAssetSources, чтобы добавить дополнительные элементы и атрибуты.
Благодарности
Выпуск Vite 8.1 стал возможен благодаря нашему сообществу контрибьюторов, сопровождающим в экосистеме и команде Vite. Vite создан при участии VoidZero в партнёрстве с Bolt и Nuxt Labs. Также мы хотим поблагодарить наших спонсоров на GitHub Sponsors для Vite и в Open Collective для Vite.