Vite+: один CLI вместо разрозненного стека — полный гайд
Vite+ заменяет стек из Vite, ESLint, Prettier, Vitest и NVM единым бинарником vp. Разбираем установку, конфигурацию через vite.config.ts и миграцию — с конкретными командами и ограничениями.
Современный JavaScript-проект обычно собирает инструменты по одному: Vite для сборки, ESLint для линтинга, Prettier для форматирования, Vitest для тестов, NVM для версий Node.js — и отдельные скрипты, которые всё это склеивают. Это работает, но превращается в отдельную точку обслуживания. Каждый инструмент живёт в своём конфиг-файле, с собственными релизами и режимами отказа. Vite+ предлагает выход: один бинарник vp, который заменяет большую часть этого стека.
Vite+ — бесплатный open-source CLI от VoidZero, объединяющий Vite, Vitest, Oxlint, Oxfmt, Rolldown, tsdown, Vite Task и менеджмент версий Node.js в одном инструменте.
Ключевые выводы
Vite+ объединяет 7+ инструментов (Vite, Vitest, Oxlint, Oxfmt, Rolldown, Vite Task, vp env) под единым CLI-бинарником vp.
Требует Node.js 20.19+ или 22.12+. При более старой версии обновление обязательно.
Для новых Vite-проектов — удобен сразу. Для крупных production-кодовых баз с кастомными ESLint-плагинами — тестировать осторожно.
Единая точка конфигурации: vite.config.ts вместо .eslintrc, .prettierrc, vitest.config.ts и .nvmrc.
Команда vp check запускает форматирование, линтинг и проверку типов за один шаг.
Что входит в Vite+
Vite+ спроектирован так, чтобы один CLI заменил набор привычных команд. Вот что он консолидирует:
- Vite — дев-сервер и production-сборка через
vp dev/vp build - Rolldown — bundler следующего поколения, используемый Vite 8 вместо Rollup
- Oxlint — быстрый линтер для JS/TS, совместимый с большинством ESLint-правил
- Oxfmt — форматтер кода, заменяющий Prettier для большинства проектов
- Vitest — тесты, интегрированные с Vite-экосистемой
- Vite Task — запуск задач в монорепозитории с кэшированием (альтернатива Turborepo)
- vp env — управление версиями Node.js без NVM или FNM
Ключевое преимущество — не только скорость, но и согласованность: меньше конфиг-файлов, меньше точек, в которых что-то может разъехаться.
Когда Vite+ имеет смысл
Vite+ подходит не для каждой ситуации. Вот ориентир:
- Используйте, если начинаете новый Vite-проект — меньше конфигурации с самого старта
- Используйте, если хотите единую команду для форматирования, линтинга и проверки типов
- Используйте, если нужно pin-нуть Node.js-версию в проекте без NVM/FNM
- Осторожно, если production-кодовая база зависит от нишевых ESLint-плагинов или кастомных правил
- Осторожно, если в монорепозитории уже настроен Turborepo или Nx
- Осторожно, если поведение Prettier жёстко зафиксировано и команда не готова к разнице в форматировании
Что нужно для начала
Важная версионная оговорка: Vite 8 требует Node.js 20.19+ или 22.12+. Если на машине установлена более старая версия — обновите перед установкой Vite+.
Для работы с этим гайдом понадобится:
- Node.js 20.19+ или 22.12+
- Базовое знакомство с командной строкой
- Терминал на macOS, Linux или Windows
- Существующий Vite-проект, если хотите протестировать миграцию
ESLint, Prettier, Vitest, NVM или FNM глобально устанавливать не нужно — Vite+ берёт это на себя.
Установка Vite+
Vite+ устанавливается как единый бинарник vp. На macOS или Linux: Официальный сайт проекта: vite.plus.
На Windows в PowerShell:
После установки перезапустите терминал и проверьте CLI:
Создание проекта
Для создания нового проекта используется команда vp create. Интерактивные подсказки предложат выбрать фреймворк, шаблон и пакетный менеджер:
После создания проекта переходим в директорию и запускаем дев-сервер:
Команда vp dev делает то же, что npm run dev, pnpm dev или yarn dev — только теперь команда единая для всей команды, независимо от пакетного менеджера.
Конфигурация в vite.config.ts
Вся конфигурация Vite+ собирается в одном файле — vite.config.ts. Вместо разбросанных .eslintrc, .prettierrc, vitest.config.ts и .nvmrc — один типизированный файл. Базовая конфигурация выглядит так:
Форматирование с Oxfmt
Добавьте секцию fmt для настройки форматирования:
Запуск форматирования: vp fmt. Для большинства проектов Oxfmt заменяет Prettier — но перед миграцией production-кодовой базы прогоните его на отдельной ветке и проверьте diff: Oxfmt может форматировать иначе в отдельных случаях.
Линтинг с Oxlint
Oxlint работает быстро и поддерживает большинство ESLint-совместимых правил. Главное ограничение — совместимость плагинов. Если проект зависит от нишевых ESLint-плагинов или кастомных правил, перед полной заменой ESLint нужна тщательная проверка.
Тесты с Vitest
Запуск тестов: vp test. Vitest хорошо интегрируется с Vite-экосистемой и переиспользует ту же ментальную модель и инструментарий.
Единая проверка с vp check
После настройки форматирования, линтинга и тестов — запустите единую проверку качества:
Команда прогоняет форматирование, линтинг и проверку типов за один вызов. Если введена ошибка типа:
Vite+ сообщит о проблеме в терминале. Для автоматического исправления того, что можно исправить автоматически:
Важная оговорка: --fix не чинит всё подряд. Форматирование и часть lint-проблем — да, ошибки типов и логические баги — нет. Это инструмент автоисправления, а не замена ревью кода.
Проверка staged-файлов перед коммитом
В традиционном стеке для pre-commit проверок используют Husky и lint-staged. Vite+ консолидирует часть этого рабочего процесса через конфигурацию staged:
Vite+ предоставляет команду и конфигурацию staged-файлов — git hook при этом нужно настроить самостоятельно (Vite+ не делает это автоматически). После настройки это предотвращает попадание проблем с форматированием и типами в основную ветку.
Миграция существующего Vite-проекта
Для уже существующего Vite-проекта есть команда миграции:
Она переносит конфигурацию Oxlint, Oxfmt и lint-staged в vite.config.ts. Важно: не воспринимайте это как финальный шаг. Миграция — начало ревью, а не конец. Рекомендуемый порядок:
- Запустить
vp migrate - Запустить
vp check - Проверить изменения через
git diff - Просмотреть сгенерированный конфиг, изменения в package.json и diff форматирования
- Только после ревью — мёржить
Управление версиями Node.js через vp env
Vite+ включает менеджмент версий Node.js через vp env. Зафиксировать конкретную версию для проекта:
Это гарантирует одинаковую версию рантайма у всех разработчиков и снижает риск environment-специфичных багов, особенно когда требования Vite к Node.js меняются между мажорными версиями. Можно заменить .nvmrc или FNM для команд, хотящих управлять всем через Vite+.
Vite+ против традиционного инструментария
Вот как Vite+ соотносится с привычным стеком по ключевым задачам:
- Дев-сервер:
npm run dev→vp dev - Production-сборка: Vite + Rollup-конфиг →
vp build - Форматирование: Prettier + .prettierrc → Oxfmt через vite.config.ts
- Линтинг: ESLint + конфиг плагинов → Oxlint через vite.config.ts
- Тесты: отдельный vitest.config.ts →
vp test - Проверка качества: несколько package.json-скриптов →
vp check - Версия Node.js: .nvmrc или FNM →
vp env pin - Staged-проверки: Husky + lint-staged → staged-конфиг Vite+ с ручной настройкой hook'а
- Задачи монорепозитория: Turborepo/Nx → vp run через Vite Task
Текущие ограничения
Vite+ перспективен, но не является универсальной заменой для всех JavaScript-проектов. Перед широким внедрением важно учесть:
- Зрелость экосистемы — Vite+ новее инструментов, которые он консолидирует
- Совместимость ESLint — Oxlint поддерживает большинство правил, но не каждый плагин и кастомное правило
- Форматирование — Oxfmt может давать не полностью идентичный Prettier вывод в отдельных случаях
- Фреймворк-специфичность — Vite+ наиболее силён в Vite-экосистеме; framework-специфичное поведение нужно тестировать
- Размер установки — Vite 8 тяжелее Vite 7 из-за lightningcss и Rolldown
- Изменения рабочего процесса — замена привычных скриптов на
vpтребует документирования и адаптации команды
Vite+ — не волшебная замена каждого JavaScript-инструмента. Это серьёзная попытка сократить фрагментацию frontend-инструментария, сделав Vite точкой входа в более интегрированный рабочий процесс разработки.
Часто задаваемые вопросы
Что такое Vite+ и чем он отличается от Vite?
Vite+ — CLI-инструмент от VoidZero, который расширяет Vite до полного рабочего процесса разработки. Если Vite — это дев-сервер и бандлер, то Vite+ добавляет линтинг (Oxlint), форматирование (Oxfmt), тесты (Vitest), управление задачами (Vite Task) и версиями Node.js (vp env) под единым бинарником vp.
Какой Node.js нужен для Vite+?
Vite 8, используемый Vite+, требует Node.js 20.19+ или 22.12+. Более старые версии не поддерживаются — перед установкой обновите Node.js через официальный сайт или через команду vp env pin 22.12.0 после установки Vite+.
Заменяет ли Vite+ ESLint полностью?
Для большинства проектов — да: Oxlint поддерживает широкий набор ESLint-совместимых правил. Однако если ваш проект зависит от нишевых ESLint-плагинов (например, React-специфичных кастомных правил или внутренних корпоративных плагинов), нужно тестировать Oxlint отдельно перед полной заменой.
Как мигрировать существующий проект на Vite+?
Используйте команду vp migrate — она перенесёт конфигурацию Oxlint, Oxfmt и lint-staged в vite.config.ts. После этого запустите vp check, проверьте git diff и только затем мёржите изменения. Для production-кодовых баз с кастомными правилами это начало ревью, а не финальный шаг.
Нужны ли git hooks отдельно при использовании staged-конфига Vite+?
Да. Vite+ предоставляет конфигурацию и команду для проверки staged-файлов, но не устанавливает git hook автоматически. Его нужно настроить вручную — например, через Husky или напрямую в .git/hooks/pre-commit.
Выводы
Vite+ делает практическую ставку: JavaScript-инструментарий легче поддерживать, когда бандлер, линтер, форматтер, тест-ранер, task runner и менеджер рантайма спроектированы работать вместе. Для новых Vite-проектов это сразу даёт меньше конфиг-файлов, меньшую поверхность команд и единый vp check для стандартных проверок.
Для крупных production-приложений лучший подход — постепенное внедрение: протестировать на ветке, проверить diff форматирования, убедиться в покрытии линтинга, проверить поведение CI. Инструмент не ставит точку в эволюции frontend-инструментария — он указывает направление: меньше фрагментации, больше интеграции.
Источник: Vite+ guide: One CLI for JavaScript tooling — LogRocket Blog, Emmanuel John, 12 мая 2026 г. Репозиторий Vite+: github.com/voidzero-dev/vite-plus.