자바스크립트에 ESM이 나오기 이전(ES6 이전)에는 '번들링'을 통해서만 모듈화를 할 수 있었다.
그리고 그런 번들링 툴로 webpack, rollup, parcel 등이 등장했고 널리 쓰이고 있다.
JS로 만드는 앱의 크기가 커짐에 따라 번들링에 걸리는 시간도 늘어났고, dev 서버를 돌리거나 HMR을 사용해도 몇 초씩 기다려야하는 일들이 생겼음.
vite는 이제 브라우저가 native ESM을 지원한다는 사실과, 그동안 등장한 발전된 번들링 툴들(esbuild)을 적극 활용함
esbuild
를 동해 pre-bundling 함native ESM이 지원되긴 하지만, 번들링 하면 최적화를 할 수 있음.
tree-shaking, lazy loading 등등
rollup은 esbuild보다 느리지만, rollup의 플러그인 시스템의 유연함이 더 가치있다고 판단해서 사용함
esbuild
로 미리 번들링해둠rollup
으로 번들링함 => esbuild
보다 느리지만, 플러그인 시스템의 유연함이 더 가치 있어서 사용함