
vite는 webpack, rollup 등과 같이 모듈 번들링을 수행할때 사용되는 번들러이다. 빠르고 간결한 웹 프로젝트 개발 경험에 초점을 맞춰 탄생한 빌드 도구이다.
네이티브 자바스크립트 모듈인 ES Module을 기반으로 한 데브서버이다.
웹팩과 같은 모듈 번들러가 나왔던 이유는 자바스크립트의 모듈화와 관계가 있다. ES Module이 등장하기 전까지는 자바스크립트 언어 레벨에서 모듈화 방식은 없었다.
그래서 require.js등과 같은 모듈 로더 등을 사용하지 않으면 모듈화가 불가능했다. require.js같은 라이브러리를 사용하다 추후에 자바스크립트 언어에 모듈화 문법(import, export)이 들어오게 되었다.
이러한 모듈화 문법을 이용하여 여러 개의 파일을 하나로 합쳐주거나 의미 있는 단어로 묶어주는 것을 번들링이라고 하고 프론트엔드 생태계에서 모듈 번들러로 대부분 웹팩을 사용하고 있다.
웹팩은 기본 cra에도 도입된 번들러이다. 하지만 속도 측면에서 문제점이 있다. 자바스크립트 파일을 하나로 만들어주기 위해 코드 수정이 이루어질때마다 새롭게 빌드를 하게 되고, 프로젝트의 규모가 커질수록 파일이 많아지게 되니 시간이 오래걸리면 대기시간 또한 길어지게 된다.
웹팩의 경우, 처음 로컬 서버를 시작할때 관련된 모든 모듈을 번들링해서 메모리에 할당하는 시간이 필요하기 때문에 어느정도의 시간이 소요된다.
반면 Vite는 번들링을 하지 않고 바로 서버를 시작하기 때문에 서버 실행 명령어와 동시에 서버가 바로 구동된다.
변경된 모듈만을 빠르게 교체할 수 있다.