Vite는 Vue.js 개발자 Evan You가 만든 현대적인 프론트엔드 빌드 도구로, 개발 속도 향상에 중점을 둡니다. Webpack과 달리 네이티브 ES 모듈을 사용하여 파일을 직접 제공하고, HMR(Hot Module Replacement)을 통해 변경 사항을 즉시 반영하여 개발 서버 시작 및 업데이트 속도를 획기적으로 단축합니다. 이 덕분에 기존 Webpack에서 39초 걸리던 재컴파일 시간이 1초로 줄어드는 놀라운 개선을 경험했습니다. Vite는 ESBuild 및 Rollup 기반으로 빠르고, 설정이 간단하며, 프레임워크에 독립적이라는 장점이 있습니다.
Vite 선택 및 도입 과정
저자의 팀은 11년 된 방대한 JavaScript 코드를 가진 복잡한 Rails 앱을 운영 중이었으며, 점진적인 마이그레이션이 필수적이었습니다. Vite는 여러 진입점(entry points)을 허용하여 앱의 일부만 단계적으로 마이그레이션할 수 있게 해주었습니다.
기존 Webpack 설정의 복잡성과 Shakapacker, jsbundling-rails PoC의 어려움 속에서, Vite는 가장 기본적인 진입점 테스트에서 즉시 완벽하게 작동하여 반나절 만에 실행에 성공했습니다. 이러한 즉각적인 성공과 Vite의 속도, 단순성이 Rails 개발자에게 최적의 솔루션임을 확신하게 된 결정적인 계기가 되었습니다.
Rails 앱 설정 요약
Rails 7+ 프로젝트에 Vite를 도입하려면 vite_rails 젬 추가, 인스톨러 실행, 개발 서버 구동, 그리고 Rails 레이아웃 파일에서 Vite 헬퍼 사용으로 요약됩니다. vite_ruby 및 vite_rails는 Rails 7.x 이상에서 최상의 경험을 제공합니다.