Vite’s Creator on a Unified JavaScript Toolchain and Vite+
Vue-FAQ**Создатель Vite о единой JavaScript-тулчейне и Vite+**

Фреймворки, выпускаемые как плагины Vite (например, Remix React Router, TanStack и Redmond), получат преимущества, заявил Эван Ю, создатель Vite и JavaScript-фреймворка Vue.
Сейчас Ю работает над созданием нового, унифицированного тулчейна для экосистемы JavaScript и представил обновления по этому проекту на конференции JSNation 2025, которая проходила в Амстердаме и частично транслировалась на платформе GitNation.
Он также представил концепцию Vite+, которая пока находится в разработке. Ее цель — сделать для JavaScript-инструментов то же, что Cargo делает для Rust (Cargo — это пакетный менеджер и система сборки Rust).
«Remix React Router, TanStack Start, Redwood SDK — все движутся в этом направлении, используя Vite умным образом, а также будущие функции Vite+, потому что в будущем, когда вы будете выпускать свой фреймворк как плагин Vite+, вы сможете подключаться к дополнительным командам», — сказал Ю. «Возможности безграничны, когда у вас есть доступ ко всему тулчейну через интерфейс плагина».
Все больше фронтенд-фреймворков строятся на Vite или переходят на него, включая Angular, Astro Qwik, Redwood, Remix, Solid и SvelteKit. Именно работа над Vite привела Ю к убеждению, что JavaScript нуждается в лучшем тулчейне.
«Мы всегда думали о том, как сделать Vite лучше для этой роли, и пришли к выводу, что Vite в его текущем состоянии далек от идеала», — сказал он.
«Если мы посмотрим на сборщик и все низкоуровневые зависимости, которые ему нужны, то поймем, что экосистема JS страдает от фрагментации на каждом уровне».
— Эван Ю, создатель Vite и Vue
Ю заметил, что Vite полагается на сторонние зависимости с пересекающимися функциями.
«Проблема в том, что многие из этих инструментов дублируют функционал. Они написаны на разных языках», — объяснил он. «Много проблем с эффективностью, когда данные передаются между этими инструментами, и у всех немного разное поведение в вопросах сборки или трансформации».
Команда решила создать сборщик под названием Rolldown, чтобы заменить esbuild и Rollup (сейчас используемые в Vite как зависимости) одним унифицированным инструментом.
Но, как в книгах «Если дать мышонку печенье», создание сборщика повлекло за собой необходимость выбора линтера, трансформера и т.д.
«Когда углубляешься в проблему, понимаешь, что вызовы, с которыми сталкивается Vite, отражают проблемы всей экосистемы JavaScript», — сказал он. «Если посмотреть на сборщик и его низкоуровневые зависимости, становится ясно, что экосистема JS фрагментирована на каждом уровне».
Это приводит к «усталости от решений» и перегружает новичков в JavaScript. Хотя процветающая экосистема позволила разработчикам создавать более сложные приложения, по мере взросления языка это привело к «налогу на сложность для всех», отметил Ю.
«Я считаю, что сейчас JavaScript заслуживает единого тулчейна», — заявил он. С этой целью он основал void(0) (произносится как «Void Zero»).
Основные направления Void(0)
Команда Void(0) работает над четырьмя ключевыми компонентами:
1. **Vite**
2. **Vitest** — раннер тестов, который можно использовать отдельно в любом JavaScript-проекте.
3. **Rolldown** — Rust-сборщик для JavaScript/TypeScript с API, совместимым с Rollup. Он поддерживает Vite и Vitest. Первоначально создан Иньаном Лонгом, но теперь возглавляется Ю. Сейчас находится в бета-версии 1.0. «Его уже можно использовать как почти полную замену Rollup с заметным приростом производительности», — сказал Ю. Он включает встроенное разрешение, совместимое с Node, и поддерживает 90% интерфейса плагинов Rollup.
4. **OXC** (JavaScript Oxidation Compiler) — набор инструментов, включающий линтер, парсер, резолвер, минификатор (в альфе) и форматтер (в разработке). Первая стабильная версия Oxlint вышла 9 июня 2025 года.
Многие инструменты уже завершены, включая парсер, линтер, резолвер и трансформер OXC.
«Большинство наших инструментов — самые быстрые в своих категориях, даже по сравнению с другими решениями на нативных языках», — заявил Ю. «Парсер, линтер, резолвер и трансформер — все они лидируют по скорости. Минификатор пока второй по скорости, но у него лучше коэффициент сжатия, чем у самого быстрого решения».
Обновления по OXC
Парсер преобразует исходный код JavaScript в абстрактное синтаксическое дерево (AST). Парсер OXC в три раза быстрее Rust-компилятора SWC.
AST — это основа для работы других инструментов:
- Минификаторы используют AST для безопасного переименования переменных и удаления мертвого кода.
- Линтеры проверяют стиль кода и выявляют ошибки.
- Сборщики (Webpack, Rollup, Vite) используют AST для анализа зависимостей.
- Форматтеры преобразуют AST в код с единым стилем (прототип готов, но еще не выпущен).
- Транспайлеры преобразуют AST (например, из TypeScript в ESNext).
**Vite+ в разработке**
Vite+ вдохновлен Cargo из Rust и должен стать универсальным инструментом для JavaScript. Он добавит новые команды:
- `vite lib` — для сборки библиотек
- `vite test` — для тестирования
- `vite new` — для создания проектов
- `vite task` — для управления монорепозиториями
Также планируются:
- GUI-инструменты для разработчиков
- Аудит рабочих пространств
- Поддержка монорепозиториев (как в Turborepo)
- Интеграция с ИИ через встроенный MCP-сервер
«Vite+ будет "осведомлен" о монорепозиториях, с оркестрацией сборки и кэшированием», — пояснил Ю.