핵심 요약
Vite 6에서 Rolldown(Rust 기반)이 기본 번들러 옵션. 사내 5개 SPA 전환 실측 — prod 빌드 4분 → 1분 38초, dev 시작 3.4s → 1.9s. 22개 플러그인 중 4개는 패치 필요. 사후 정리.
1. 옵트인
// vite.config.ts
export default defineConfig({
experimental: { rolldown: true },
// 또는 vite-rolldown 패키지 import
})
2. 실측
| 지표 | esbuild+Rollup | Rolldown |
|---|---|---|
| dev 시작 | 3.4s | 1.9s |
| prod 빌드(SPA, 1.4M LoC 포함) | 3m 58s | 1m 38s |
| treeshake 출력 크기 | 1.42MB | 1.38MB |
| HMR 평균 | 88ms | 42ms |
3. 호환 — 패치 필요했던 4개
- vite-plugin-pwa — assetsInclude 처리 다름, 0.20+ 필요
- @vitejs/plugin-legacy — polyfill 주입 시점 달라짐
- 커스텀 emit plugin — Rollup hook signature 차이
- rollup-plugin-visualizer — output 형식 변경
4. 함정
- dev와 prod 결과 미세 차이 — JSX 변환 옵션 다른 경우, vite.config의 esbuild 옵션 동기화
- source map — Rolldown source map은 별도 binary, sentry-cli 0.32+에서 지원
- CSS code splitting — Rolldown에서 splitting 기준 다름, chunk 수 증가 가능
- node_modules 경로 — pnpm workspace의 symlink resolution 0.4 미만에서 미스

댓글 0