Vite’s Creator on a Unified JavaScript Toolchain and Vite+

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+ будет "осведомлен" о монорепозиториях, с оркестрацией сборки и кэшированием», — пояснил Ю.



Report Page