Vite+: один CLI вместо разрозненного стека — полный гайд

Vite+ заменяет стек из Vite, ESLint, Prettier, Vitest и NVM единым бинарником vp. Разбираем установку, конфигурацию через vite.config.ts и миграцию — с конкретными командами и ограничениями.

Обложка: Vite+: один CLI вместо разрозненного стека — полный гайд

Современный 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.

			curl -fsSL https://vite.plus | bash
		

На Windows в PowerShell:

			irm https://vite.plus/ps1 | iex
		

После установки перезапустите терминал и проверьте CLI:

			vp help
		

Создание проекта

Для создания нового проекта используется команда vp create. Интерактивные подсказки предложат выбрать фреймворк, шаблон и пакетный менеджер:

			vp create
		

После создания проекта переходим в директорию и запускаем дев-сервер:

			cd my-vite-app
vp dev
		

Команда vp dev делает то же, что npm run dev, pnpm dev или yarn dev — только теперь команда единая для всей команды, независимо от пакетного менеджера.

Конфигурация в vite.config.ts

Вся конфигурация Vite+ собирается в одном файле — vite.config.ts. Вместо разбросанных .eslintrc, .prettierrc, vitest.config.ts и .nvmrc — один типизированный файл. Базовая конфигурация выглядит так:

			import { defineConfig } from 'vite-plus'

export default defineConfig({
  staged: {
    '*': 'vp check --fix',
  },
})
		

Форматирование с Oxfmt

Добавьте секцию fmt для настройки форматирования:

			import { defineConfig } from 'vite-plus'

export default defineConfig({
  staged: {
    '*': 'vp check --fix',
  },
  fmt: {
    singleQuote: true,
    semi: false,
  },
})
		

Запуск форматирования: vp fmt. Для большинства проектов Oxfmt заменяет Prettier — но перед миграцией production-кодовой базы прогоните его на отдельной ветке и проверьте diff: Oxfmt может форматировать иначе в отдельных случаях.

Линтинг с Oxlint

			import { defineConfig } from 'vite-plus'

export default defineConfig({
  staged: {
    '*': 'vp check --fix',
  },
  fmt: {
    singleQuote: true,
    semi: false,
  },
  lint: {
    ignorePatterns: ['dist/**'],
  },
})
		

Oxlint работает быстро и поддерживает большинство ESLint-совместимых правил. Главное ограничение — совместимость плагинов. Если проект зависит от нишевых ESLint-плагинов или кастомных правил, перед полной заменой ESLint нужна тщательная проверка.

Тесты с Vitest

			import { defineConfig } from 'vite-plus'

export default defineConfig({
  fmt: {
    singleQuote: true,
    semi: false,
  },
  lint: {
    ignorePatterns: ['dist/**'],
  },
  test: {
    include: ['src/**/*.test.ts'],
  },
})
		

Запуск тестов: vp test. Vitest хорошо интегрируется с Vite-экосистемой и переиспользует ту же ментальную модель и инструментарий.

Единая проверка с vp check

После настройки форматирования, линтинга и тестов — запустите единую проверку качества:

			vp check
		

Команда прогоняет форматирование, линтинг и проверку типов за один вызов. Если введена ошибка типа:

			const message: string = 123
		

Vite+ сообщит о проблеме в терминале. Для автоматического исправления того, что можно исправить автоматически:

			vp check --fix
		

Важная оговорка: --fix не чинит всё подряд. Форматирование и часть lint-проблем — да, ошибки типов и логические баги — нет. Это инструмент автоисправления, а не замена ревью кода.

Проверка staged-файлов перед коммитом

В традиционном стеке для pre-commit проверок используют Husky и lint-staged. Vite+ консолидирует часть этого рабочего процесса через конфигурацию staged:

			import { defineConfig } from 'vite-plus'

export default defineConfig({
  staged: {
    '*.{ts,tsx,js,jsx}': 'vp check --fix',
  },
})
		

Vite+ предоставляет команду и конфигурацию staged-файлов — git hook при этом нужно настроить самостоятельно (Vite+ не делает это автоматически). После настройки это предотвращает попадание проблем с форматированием и типами в основную ветку.

Миграция существующего Vite-проекта

Для уже существующего Vite-проекта есть команда миграции:

			vp migrate
		

Она переносит конфигурацию Oxlint, Oxfmt и lint-staged в vite.config.ts. Важно: не воспринимайте это как финальный шаг. Миграция — начало ревью, а не конец. Рекомендуемый порядок:

  1. Запустить vp migrate
  2. Запустить vp check
  3. Проверить изменения через git diff
  4. Просмотреть сгенерированный конфиг, изменения в package.json и diff форматирования
  5. Только после ревью — мёржить

Управление версиями Node.js через vp env

Vite+ включает менеджмент версий Node.js через vp env. Зафиксировать конкретную версию для проекта:

			vp env pin 22.12.0
		

Это гарантирует одинаковую версию рантайма у всех разработчиков и снижает риск environment-специфичных багов, особенно когда требования Vite к Node.js меняются между мажорными версиями. Можно заменить .nvmrc или FNM для команд, хотящих управлять всем через Vite+.

Vite+ против традиционного инструментария

Вот как Vite+ соотносится с привычным стеком по ключевым задачам:

  • Дев-сервер: npm run devvp 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 точкой входа в более интегрированный рабочий процесс разработки.
Emmanuel JohnFull-stack разработчик, автор статьи на LogRocket
Часто задаваемые вопросы
1
Что такое Vite+ и чем он отличается от Vite?

Vite+ — CLI-инструмент от VoidZero, который расширяет Vite до полного рабочего процесса разработки. Если Vite — это дев-сервер и бандлер, то Vite+ добавляет линтинг (Oxlint), форматирование (Oxfmt), тесты (Vitest), управление задачами (Vite Task) и версиями Node.js (vp env) под единым бинарником vp.

2
Какой Node.js нужен для Vite+?

Vite 8, используемый Vite+, требует Node.js 20.19+ или 22.12+. Более старые версии не поддерживаются — перед установкой обновите Node.js через официальный сайт или через команду vp env pin 22.12.0 после установки Vite+.

3
Заменяет ли Vite+ ESLint полностью?

Для большинства проектов — да: Oxlint поддерживает широкий набор ESLint-совместимых правил. Однако если ваш проект зависит от нишевых ESLint-плагинов (например, React-специфичных кастомных правил или внутренних корпоративных плагинов), нужно тестировать Oxlint отдельно перед полной заменой.

4
Как мигрировать существующий проект на Vite+?

Используйте команду vp migrate — она перенесёт конфигурацию Oxlint, Oxfmt и lint-staged в vite.config.ts. После этого запустите vp check, проверьте git diff и только затем мёржите изменения. Для production-кодовых баз с кастомными правилами это начало ревью, а не финальный шаг.

5
Нужны ли 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.