Announcing Vite+ 1.0
Vite+ 1.0 발표 — 웹 개발 도구를 하나의 명령 체계로
VoidZero가 Vite, Vitest, Rolldown, Oxc 등을 한데 묶는 오픈소스 도구 체인 Vite+ 1.0을 공개했습니다. `vp` 명령으로 프로젝트 생성부터 테스트, 빌드, 작업 캐싱까지 다루며, 기존 프로젝트도 `vp migrate`로 전환할 수 있습니다.
- 주제
AI 요약
Vite+ 1.0은 웹 개발 도구를 하나의 명령 체계로 묶은 도구 체인입니다. Vite, Vitest, Rolldown, Oxc를 만든 팀이 개발했으며 MIT 라이선스로 공개했습니다. 프레임워크나 패키지 매니저, Vite의 대체품은 아닙니다. 기존 도구를 함께 검증한 구성으로 제공하고, 프로젝트 루트의 vite.config.ts에서 설정을 관리하는 방식입니다. React 앱, Vue 라이브러리, Node.js CLI, 모노레포 등에서 쓸 수 있으며, 프로젝트가 Vite를 사용하지 않아도 됩니다.
`vp`로 개발 주기 관리
Vite+는 프로젝트 생성과 의존성 설치, 개발 서버 실행, 검사, 테스트, 빌드, 패키징, 작업 실행, Node.js 버전 관리를 아홉 가지 명령으로 제공합니다. vp create는 앱·라이브러리·모노레포를 만들고, vp check는 포맷·린트·타입 검사를 한 번에 실행합니다. vp test는 단위·컴포넌트·브라우저 테스트를 지원하고, vp run은 모노레포 작업 캐싱을 맡습니다. 명령 없이 vp를 실행하면 대화형 안내가 나옵니다.
기본 구성에는 Vite 8과 Rolldown, Vitest, Oxfmt, Oxlint, tsdown 등이 포함됩니다. 프로젝트에서 쓰는 패키지 매니저를 계속 선택할 수 있고, Vite 플러그인도 사용할 수 있습니다. 기존 프로젝트는 vp migrate로 옮길 수 있습니다. 이 명령은 파일을 바꾸기 전에 계획을 보여주며, 운영 중인 대규모 프로젝트라면 마이그레이션 안내를 먼저 읽으라고 권합니다.
설정과 도구 업그레이드 줄이기
발표 글은 린터와 포매터 설정이 어긋나거나, 로컬과 CI에서 다른 명령을 실행하거나, 저장소마다 도구 버전이 달라지는 문제를 도입 배경으로 듭니다. Vite+에서는 여러 의존성과 설정을 vite-plus 하나로 묶고, 도구 업그레이드를 단일 버전 변경으로 처리합니다. vp run은 작업에 실제로 사용된 파일·인수·환경 변수를 기록합니다. 입력이 바뀌지 않았다면 캐시 결과를 재사용합니다. GitHub Actions와 GitLab CI/CD용 setup-vp를 사용하면 런타임·패키지 매니저 설정과 의존성 캐시 단계를 한 작업으로 줄일 수 있습니다.
발표 글은 Rust로 작성된 도구의 속도도 제시합니다. Oxlint는 ESLint보다 50~100배, Oxfmt는 Prettier보다 최대 30배 빠르다고 설명합니다. Vite 8은 Rolldown을 바탕으로 빌드 속도를 높였다고 밝혔습니다. Oxc는 React Compiler를 네이티브로 지원하며, 발표 글에 따르면 Babel 플러그인보다 10배 빠릅니다.
1.0 공개 전후의 변화와 사용 현황
베타 공개 이후 GitLab CI/CD 지원, tsup 마이그레이션, Homebrew 설치, Docker 이미지가 추가됐습니다. vp toolchain은 제공 도구의 정확한 버전을 보여주며, vp env doctor는 런타임과 패키지 매니저가 선택되는 과정을 진단합니다. vp hooks는 Git hooks를 설정하고, vp staged는 스테이징한 파일만 검사합니다. 발표 당시 Vite+는 주간 다운로드 200만 건에 가까워졌고, 공개 저장소 2,600곳 이상이 vite-plus에 의존한다고 밝혔습니다. Tiptap은 기존 Vite, Vitest, tsup, Oxc 구성을 Vite+로 바꿨습니다.
아직 원격 캐싱, 더 깊은 모노레포 진단, vp release, vp docs는 향후 기능으로 남아 있습니다. 프로젝트를 시작하려면 vp create, 기존 프로젝트를 옮기려면 vp migrate를 실행합니다.
Reddit 반응
- @u/thecementmixer — Oxc 도구가 Vue 템플릿을 지원하기를 기다리고 있습니다.
- @u/manniL — 우리도 기다리고 있습니다. 로드맵에 있습니다!
- @u/toasterboi0100 — Angular 템플릿도 마찬가지입니다. ESLint와 Prettier를 지옥 같은 곳으로 보내고 싶지만 아직 못 보내고 있습니다.
- @u/manniL — Vue와 같은 장애물이 있는 것 같습니다.
- @u/Fun-Consequence-3112 — Vite+를 설치한 뒤로 디버깅하거나 설치 위치를 찾기가 꽤 어렵다는 점을 느꼈습니다. 전부 자체 폴더에 넣습니다.
- @u/manniL — 좀 더 자세히 설명해 주실 수 있나요?
- @u/Fun-Consequence-3112 — 표준 Node 바이너리·런타임 폴더 대신 버전별 폴더를
.vite-plus아래에 만듭니다. 그래서 전역으로 설치한 런타임이 가끔 이상하게 동작합니다. - @u/manniL — 전환과 분리를 쉽게 하려는 방식입니다.
- @u/ExtremePermit3242 — 런타임, 패키지 매니저, 개발 서버를 고르고 린터·포매터·테스트 러너·번들러를 설정하는 과정이 유용하고 깔끔합니다. 저는 그 과정이 즐거운데, 제가 별난 사람인가 봅니다.
- @u/manniL — 그러면 우리처럼 도구에 관심 많은 개발자시군요.
- @u/robotsmakinglove — Oxlint, Oxfmt, Vitest, Vite 조합이 인상적이었습니다. 써보기를 기대합니다.
- @u/vincentdesmet — Projen을 쓰고 있습니다. 조합이 가능하고, 템플릿에 맞춰 설정을 최신 상태로 유지하면서 마지막 단계의 수정도 허용합니다. Vite+는 이런 부분을 어떻게 처리하나요?
- @u/Ecksters — 업계 표준 도구로 Bun에 대응하려는 느낌입니다. 다만 결합이 꽤 강해 보입니다. 완전한 모듈성과 긴밀한 통합의 이점을 동시에 유지하기는 어렵겠지만, 이 정도가 최선일 수도 있겠습니다.
- @u/Cahnis — 패키지 매니저를 쓰지 않도록 설정할 수 있나요? 저는 pnpm이 마음에 들고 Vite의 패키지 매니저는 아직 신뢰하지 않습니다.
- @u/manniL — Vite+는 패키지 매니저가 아닙니다. 기본값으로 pnpm을 쓰지만 다른 패키지 매니저도 지원하며, 사용하지 않도록 설정할 수도 있습니다.
- @u/Electrical-Room4405 — Vite+는 주로 프런트엔드 도구인가요? 백엔드에는 좋지 않다고 들었는데, 그 말이 정확한 것 같지는 않습니다.
- @u/manniL — 모든 종류의 JavaScript 앱에서 쓸 수 있습니다. Node.js 앱에서는 내장 개발·빌드 명령을 쓰지 않고도 린트, 포맷, 작업 실행 기능을 이용할 수 있습니다.
- @u/nodecore — 모노레포의 패키지 40개 이상을 대상으로 Renovate가 만든 0.3.3에서 1.0.0으로의 업데이트 PR을 방금 병합했습니다. 문제는 하나도 없었습니다.
- @u/dbbk — AI 에이전트가 의존성과 설정을 관리하는 상황이라면, 이 도구가 누구를 위한 것인지 잘 모르겠습니다. 각 도구를 분리해 두는 편이 한데 합치는 것보다 낫습니다.
- @u/rafark — AI 에이전트가 내 의존성과 설정을 관리한다는 말은 처음 듣습니다. 언제부터 AI 에이전트가 내 의존성과 설정을 관리하나요? “이제 아무도 코드를 안 쓴다”는 말인가요? 저는 코드를 씁니다. 자기 습관을 모두에게 적용하지 마세요.
- @u/dbbk — 알겠습니다. 하지만 당신은 분명 소수입니다.
원문: VoidZero / 번역·요약: Trawling