Как Vite+ пытается собрать разрозненный фронтенд-стек в один кулак
Вы когда-нибудь считали, сколько конфигурационных файлов лежит в корне вашего среднего проекта? .eslintrc, .prettierrc, vitest.config.ts, tsconfig.json, package.json, а еще настройки для lint-staged или husky. Каждый раз, когда выходит обновление одного инструмента, приходится проверять совместимость с остальными. Команда VoidZero, в которую входят создатели Vite и Oxc, решила, что с нас хватит, и выкатила Vite+.
Это не просто очередная надстройка. По сути, перед нами попытка создать единую точку входа для всей веб-разработки, где управление версиями Node.js, установка пакетов, линтинг, тесты и сборка живут внутри одного бинарника.
Что под капотом
Если вы следите за новостями фронтенда, то знаете про проект VoidZero. Ребята пишут невероятно быстрые инструменты на Rust. Vite+ объединяет их наработки в общую цепочку. Внутри сидят:
- Vite и Vitest для разработки и тестов.
- Oxlint и Oxfmt — сверхбыстрые замена ESLint и Prettier.
- Rolldown и tsdown — новые сборщики, которые должны прийти на смену Rollup и esbuild.
Идея в том, чтобы вы установили одну зависимость и забыли про зоопарк devDependencies.
Одна команда для всего
Вместо того чтобы прыгать между npm, nvm и npx, вы используете CLI-утилиту vp. Она берет на себя вообще всё.
Например, управление окружением. Команда vp env позволяет переключать версии Node.js прямо для конкретного проекта. Больше не нужно вспоминать, установлен ли у вас fnm или nvm.
Установка зависимостей тоже упростилась. vp install сама поймет, какой менеджер пакетов вы используете (pnpm, npm или yarn), и вызовет нужные команды. Это удобно, когда вы постоянно переключаетесь между старыми и новыми репозиториями с разной структурой.
Единый конфиг вместо десятка файлов
Самая приятная часть — это vite.config.ts. Теперь это действительно центральный пульт управления. Посмотрите, как выглядит настройка линтера, тестов и кастомных задач в одном месте:
import { defineConfig } from 'vite-plus';
export default defineConfig({
// Обычные плагины Vite
plugins: [],
// Настройки тестов прямо здесь
test: {
include: ['src/**/*.test.ts'],
},
// Конфигурируем Oxlint без создания .oxlintrc
lint: {
ignorePatterns: ['dist/**'],
},
// Настройки форматирования кода
fmt: {
semi: true,
singleQuote: true,
},
// Задачи для монорепозитория или скрипты сборки
run: {
tasks: {
'build:icons': {
command: 'node scripts/generate-icons.js',
},
},
},
});
Такой подход избавляет от ментальной нагрузки. Вам не нужно гуглить формат конфига для каждого отдельного инструмента — всё типизировано и находится под рукой.
Быстрый старт и миграция
Если вы боитесь, что переход на новый инструмент превратится в неделю боли, разработчики предусмотрели vp migrate. Эта команда сканирует ваш проект, находит старые конфиги вроде .oxlintrc или настройки lint-staged и переносит их в vite.config.ts.
Для новых проектов всё еще проще:
vp create
Эта команда развернет готовую структуру, где всё уже настроено и готово к работе.
Практическая польза
Кому это нужно прямо сейчас? В первую очередь тем, кто устал от медленных проверок в CI и огромных node_modules. Поскольку Vite+ опирается на инструменты, написанные на Rust (Oxc), команды vp check (линтинг + типы) и vp fmt отрабатывают в разы быстрее привычных JS-аналогов.
Для мейнтейнеров библиотек есть vp pack. Она помогает собирать пакеты для публикации в npm или даже упаковывать приложения в исполняемые бинарники.
Интересно реализована работа с монорепозиториями. Команда vp run умеет кэшировать результаты выполнения задач и понимает зависимости между пакетами. Это делает её легкой альтернативой Turborepo или Nx для тех, кому не нужны их избыточные функции.
Стоит ли пробовать
Vite+ выглядит как логичный шаг в эволюции фронтенд-инструментария. Мы долго шли к тому, чтобы собирать стек из кусочков, и теперь возвращаемся к монолитным, но быстрым и согласованным решениям.
Проект всё еще активно развивается, и некоторые части (например, Rolldown) могут вести себя нестабильно в сложных конфигурациях. Однако для пет-проектов или новых сервисов это отличный способ сократить время на настройку окружения. Если вам нравится скорость Vite и вы хотите видеть такую же скорость во всём остальном цикле разработки, vp определенно заслуживает места в вашем терминале.
