프로젝트 소개

Vinext는 Next.js의 포크나 `next build` 출력용 어댑터가 아니라 Vite 위에 구축된 대안적인 Next.js 호환 툴체인이다. 이 Vite 플러그인은 `app/` 또는 `pages/` 디렉터리를 감지하고 `next.config.js`를 로드하며, App Router와 Pages Router를 모두 지원한다. 문서화된 기능에는 React Server Components, Server Actions, 라우트 핸들러, 미들웨어, SSR 및 클라이언트 하이드레이션, 정적 생성, ISR, `output: "export"`, 독립 실행형 Node.js 출력, 그리고 `next/link`, `next/image`, `next/navigation`, `next/headers`, `next/cache`, Metadata API와 같이 널리 사용되는 모듈이 포함된다. 이 프로젝트는 Next.js 16.x를 대상으로 하며, 구버전의 폐기된 API에는 초점을 두지 않는다. README에 따르면 vinext는 활발히 개발 중이며 아직 완전한 드롭인 대체품은 아니다. 알려진 호환성 격차로는 불완전한 Cache Components 및 Partial Prerendering 동작, 제한적인 빌드 시점 이미지 및 폰트 최적화, `sharp`와 `satori` 같은 패키지에 대한 App Router 개발 환경에서의 네이티브 모듈 실패, 무시되는 `preferredRegion`, 그리고 일부 고급 또는 최근 도입된 Next.js 시맨틱이 있다. 사용자는 마이그레이션 전에 `vinext check`를 실행할 것을 권장받는다. 새 프로젝트는 `create-vinext-app`으로 생성할 수 있고, 기존 프로젝트는 `vinext init`으로 마이그레이션할 수 있다. 마이그레이션 명령은 호환성을 확인하고, 의존성을 설치하고, ESM에 맞게 일부 구성을 조정하고, 스크립트를 추가하고, 배포 타깃을 묻고, 원래의 Next.js 설정을 제거하지 않은 채 적절한 Vite 및 플랫폼 구성을 생성한다. 수동 설정은 `vinext()` Vite 플러그인, `vite dev`, `vite build`, `vinext start`를 사용한다. 선택적인 Agent Skill은 지원되는 AI 코딩 도구를 통해 마이그레이션을 안내할 수 있다. Cloudflare Workers가 가장 깊은 통합을 제공한다. `@vinext/cloudflare deploy`가 애플리케이션을 빌드하고 배포하며, D1, R2, KV, Durable Objects, AI, Queues, Vectorize, Browser Rendering과 같은 바인딩은 `cloudflare:workers`의 `env`를 통해 접근한다. 이 통합은 캐시 어댑터, 요청 시점 이미지 최적화, 응답 캐싱, 선택적 캐시 사전 워밍도 포괄한다. 독립 실행형 Node 출력은 `dist/standalone/server.js`에서 시작할 수 있다. Vercel, Netlify, AWS, Deno Deploy, Azure를 포함한 다른 플랫폼은 Nitro Vite 플러그인을 통해 대상으로 삼을 수 있다. 이 프로젝트는 1,700개 이상의 Vitest 테스트와 380개의 Playwright 엔드투엔드 테스트를 보고하며, 여기에는 Next.js 및 OpenNext 적합성 스위트에서 파생된 테스트도 포함되지만, 프로덕션 사용 전에 신중한 평가를 권장한다.