Почему Vite+?
Сегодня для работы в экосистеме JavaScript разработчику необходимы среда выполнения вроде Node.js, менеджер пакетов (например pnpm) dev-сервер, линтер, форматтер, тестовый раннер, сборщик, исполнитель задач и всё большее количество конфигурационных файлов.
Vite показал, что инструменты фронтенд-разработки можно сделать значительно быстрее, если переосмыслить архитектуру вместо того, чтобы мириться со сложившимся положением вещей. Vite+ применяет ту же идею ко всему остальному локальному процессу разработки, объединяя инструменты в единый пакет, который ускоряет и упрощает разработку.
Какую проблему решает Vite+
Экосистема инструментов JavaScript давно сталкивается с фрагментацией и постоянной сменой технологий. Веб-приложения становятся всё больше, а вместе с этим производительность инструментов, сложность их настройки и различия между ними превращаются в серьёзные узкие места по мере роста проектов.
Эти проблемы особенно заметны в организациях с несколькими командами, каждая из которых использует собственный набор инструментов. Управление зависимостями, инфраструктура сборки и контроль качества кода становятся разрозненными зонами ответственности, которыми каждая команда занимается отдельно, а иногда ими вообще никто системно не владеет. В результате зависимости постепенно расходятся по версиям, сборки замедляются, а качество кода ухудшается. Устранение таких проблем на поздних этапах требует значительно больше усилий, замедляет работу команд и отвлекает их от разработки продукта.
Что входит в состав Vite+
Vite+ объединяет инструменты, необходимые для современной веб-разработки, в единую интегрированную цепочку разработки. Вместо самостоятельной сборки и поддержки собственного набора инструментов Vite+ предоставляет единую точку входа, которая управляет средой выполнения, зависимостями, сервером разработки, проверками качества кода, тестированием и сборкой.
- Vite и Rolldown — для разработки и сборки приложений
- Vitest — для тестирования
- Oxlint и Oxfmt — для линтинга и форматирования
- tsdown — для сборки библиотек и автономных исполняемых файлов
- Vite Task — для оркестрации задач
На практике это означает, что разработчики работают через единый набор команд: vp dev, vp check, vp test и vp build.
Такая унифицированная цепочка инструментов снижает объём конфигурации, повышает производительность и помогает командам поддерживать единообразный набор инструментов во всех проектах.
Быстро и масштабируемо по умолчанию
Vite+ построен на современных инструментах, таких как Vite, Rolldown, Oxc, Vitest и Vite Task, чтобы ваши проекты оставались быстрыми и масштабируемыми по мере роста кодовой базы. Использование Rust позволяет ускорить многие типовые операции в 10 раз, а иногда даже в 100 раз. Однако многие Rust-ориентированные инструменты несовместимы с существующей экосистемой или не поддерживают расширение через JavaScript.
Vite+ связывает Rust и JavaScript с помощью NAPI-RS, что позволяет предоставлять привычный, простой в настройке и расширяемый JavaScript-интерфейс с высоким уровнем совместимости с существующей экосистемой.
Объединение инструментов в единую цепочку даёт преимущества не только за счёт использования более быстрых компонентов. Например, многие разработчики настраивают линтеры с поддержкой анализа типов, из-за чего во время линтинга выполняется полная проверка типов. Команда vp check позволяет форматировать код, выполнять линтинг и проверку типов за один проход, что ускоряет статический анализ примерно в два раза по сравнению с отдельным запуском типозависимых правил линтинга и проверки типов.
Полностью открытый исходный код
Vite+ — это полностью открытый проект, а не новый фреймворк или закрытая платформа. Он интегрируется с существующей экосистемой Vite и фреймворками, построенными на её основе, включая React, Vue, Svelte и другие. В качестве менеджера пакетов можно использовать pnpm, npm, Yarn или Bun, а управление средой выполнения Node.js Vite+ берёт на себя.
Мы всегда рады вкладу сообщества в развитие проекта. Подробности о том, как присоединиться, смотрите в руководстве по участию в разработке.