На прошлой неделе мы представили Vite+ на первой офлайн-конференции ViteConf в Амстердаме. В этом посте мы поделимся более подробной информацией о том, что это такое и чем продиктована его разработка.
Что такое Vite+?
Vite+ — это инструмент разработчика с интерфейсом командной строки, который можно установить из npm, как и сам Vite. Это обновлённая версия Vite с дополнительными функциями. Представьте, что помимо команд vite dev и vite build теперь вы можете использовать:
- vite new — для создания новых проектов, особенно монорепозиториев, с рекомендуемой структурой, которая лучше всего работает с Vite+. Поддерживает генерацию кода, например добавление нового пакета в монорепозиторий или вызов пользовательских генераторов.
- vite lint — проверка кода с помощью Oxlint, который поставляется с более чем 600 правилами, совместимыми с ESLint, и работает в 100 раз быстрее, чем ESLint. Поддерживает проверку типов и плагины, написанные на JavaScript с API, совместимым с ESLint.
- vite fmt — форматирование кода с помощью Oxfmt (скоро будет выпущен), который обеспечивает совместимость с Prettier на уровне 99%+, предлагая при этом больший контроль и гибкость, например более тонкую настройку переноса строк.
- vite run — встроенный планировщик задач для монорепозиториев с интеллектуальным кэшированием. Мы реализовали сложный механизм определения входных данных для задач, благодаря чему большинство задач можно кэшировать без явной настройки — часто даже с лучшей детализацией, чем при ручной настройке. Представьте себе Turborepo, но без необходимости объяснять системе, как аннулировать кэш.
- vite ui — инструменты разработки с графическим интерфейсом, которые предоставляют информацию о разрешении модулей и поведении преобразования, анализе размера бандла и tree-shaking, а также интеграцию со специфичными для фреймворка инструментами разработки.
Все эти команды работают вместе «из коробки», не требуя сложной настройки или обеспечения совместимости. Vite+ наследует обширную экосистему Vite, поэтому совместим с основными фреймворками, такими как React и Vue, а также с фулл-стек метафреймворками, такими как Tanstack Start и SvelteKit. И поскольку каждая команда построена на основе широко используемых инструментов или совместима с ними, внедрение Vite+ не требует масштабной переработки, если вы уже используете эти инструменты.
Весь комплект команд построен на общей платформе, обеспечивающей согласованность и последовательность. Мы реализовали полный инструментарий компилятора на Rust — от парсера до резольвера, трансформатора, минификатора и бандлера — с тщательной оптимизацией производительности на каждом уровне. Вся эта инфраструктура является открытым исходным кодом и уже широко используется компаниями, такими как Framer (подробнее), Linear, Atlassian, Shopify и другими. Утилиты, такие как парсер и трансформатор, также экспортируются из Vite+ в виде API для поддержки кастомных инструментов.
Вы можете посмотреть демонстрацию работы Vite+, представленную Эваном на конференции ViteConf.
Проблема, которую решает Vite+
Экосистема инструментов JavaScript за последние годы пережила немало фрагментации и изменений. Будучи языком, изначально разработанным за 10 дней, никто не мог представить, что мы будем создавать приложения такого масштаба и сложности с помощью JavaScript. Сложность инструментов и производительность стали реальными препятствиями для компаний, сталкивающихся со всё более масштабными веб-проектами, но имеющих ограниченные внутренние ресурсы для инструментов.
Эти препятствия особенно серьёзны для компаний с несколькими командами, каждая из которых использует свой уникальный набор инструментов. Такие задачи, как управление зависимостями или проверки безопасности, должны выполняться отдельно для каждой команды. Комбинации зависимостей расходятся между проектами и со временем их становится всё труднее согласовывать. Если команды или проекты объединяются, то приходится тратить время разработчиков на миграцию инструментов или в итоге получается запутанный набор инструментов.
С помощью Vite+ мы стремимся предложить унифицированное решение для инструментов JavaScript, чтобы команды, сталкивающиеся с этими проблемами, могли сосредоточиться на выпуске продуктов, вместо того чтобы тратить время на оценку, настройку и отладку своих наборов инструментов.
Лицензирование
Устойчивость всегда была проблемой для инструментов разработки с открытым исходным кодом. Наша цель с Vite+ - использовать практики, которые применимы на больших проектах в крупных организациях, и привнести их в проекты с открытым исходным кодом, на которых основан Vite+.
Чтобы обеспечить выгоду для более широкого сообщества, Vite+ будет бесплатным для частных лиц, проектов с открытым исходным кодом и малого бизнеса. Мы планируем предложить фиксированную годовую стоимость лицензии для стартапов и индивидуальные цены для предприятий. Хотя Vite+ будет иметь коммерческую лицензию, его исходный код будет доступен. Точные пороговые значения и детали лицензирования будут объявлены ближе к публичному запуску.
Мы понимаем, что коммерциализация в сфере открытого исходного кода может вызывать опасения внутри сообщества. За годы нашей работы над открытыми проектами мы осознали, насколько хрупким является этот баланс и насколько он основан на доверии. Мы привержены выбору пути коммерциализации, который наилучшим образом соответствует интересам наших пользователей как открытых проектов, так и коммерческих продуктов.
Важно подчеркнуть, что Vite+ представляет собой отдельный дополнительный слой, построенный поверх поддерживаемых нами проектов с открытым исходным кодом. Все существующие проекты — Vite, Vitest, Rolldown и Oxc — останутся открытыми навсегда под лицензией MIT. Поскольку Vite+ зависит от этих открытых проектов, улучшение Vite+ требует улучшения и самих этих проектов. Вы вправе требовать от нас соблюдения этого обязательства.
Приглашаем помочь в развитии Vite+!
Vite+ всё ещё находится в разработке, и мы планируем выпустить публичную предварительную версию в начале 2026 года. В настоящее время мы ищем первых пользователей, которые помогут протестировать его в производственных условиях.
Если вам интересно поучаствовать в тестировании, посетите сайт viteplus.dev и свяжитесь с нами!
Часто задаваемые вопросы
Какие плюсу от использования Vite+ с фреймворками?
Vite+ интегрируется на уровне приложений. Фреймворкам не нужно переписывать свой внутренний код, чтобы разработчики могли воспользоваться преимуществами. Они могут предоставлять плагины Vite+ для улучшения пользовательского опыта, но им не нужно переходить на Vite+ самостоятельно.
Фреймворки с открытым исходным кодом могут использовать Vite+ бесплатно.
Стал ли Vite платным?
Нет. Vite остаётся бесплатным проектом с открытым исходным кодом под лицензией MIT. VoidZero заявил с самого начала, что все проекты с открытым исходным кодом останутся таковыми. Vite+ — это отдельный продукт, который предоставляет дополнительные функции и услуги как надмножество Vite.
Какое влияние Vite+ окажет на Vite и другие проекты с открытым исходным кодом?
Vite+ построен на существующей экосистеме с открытым исходным кодом и может функционировать только если с ней всё в порядке. Как платный продукт, Vite+ поддерживает устойчивость собственных базовых проектов с открытым исходным кодом.
Можно ли использовать Vite+ со своими инструментами?
Да. Vite+ стремится обеспечить наилучший пользовательский опыт и производительность, но не заставляет использовать только инструменты и команды Vite+. Его планировщик задач и кэширование будут работать с произвольными задачами, а не только со встроенными командами Vite+.
Подпишитесь на канал чтобы не пропустить новые статьи о разработке!
Оригинал статьи читайте по ссылке