Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Vite와 함께 Esbuild를 사용할 수 있습니다. 변환 속도를 향상시킬 수 있습니다


Vite와 함께 Esbuild를 사용할 수 있습니다. 변환 속도를 향상시킬 수 있습니다


예, Vite와 함께 Esbuild를 사용하면 Webpack과 같은 다른 번들러를 사용하는 것과 비교하여 변환 속도를 크게 향상시킬 수 있습니다. 몇 가지 핵심 사항은 다음과 같습니다.

esbuild의 사전 묶음 의존성

Vite는 Esbuild를 사용하여 사전 번들 종속성을 사용합니다. TSC (TypeScript Compiler)를 직접 사용하는 것보다 약 20-30 배 빠릅니다 [3]. 이 사전 묶음 단계는 CommonJS/UMD 모듈을 ESM으로 변환하고 JavaScript 기반 Bundlers와 비교하여 Vite의 냉장 시간을 향상시킵니다 [1].

더 빠른 타입 스크립트 변환

Vite는 성능에 최적화 된 Esbuild의 Custom TypeScript Parser를 활용합니다. 메가 모르 픽 객체 모양과 불필요한 동적 속성 액세스와 같은 공식 타입 스크립트 컴파일러의 일부 속도 범프를 피합니다 [3].

경험적 성능 측정

벤치 마크는 Esbuild가있는 Vite가 특정 작업의 Webpack보다 훨씬 빠를 수 있음을 보여줍니다 [2].

- 초기`yarn start` 빌드 : Vite 6s vs Webpack 150s
- 반응 구성 요소 핫 재 장전 : Vite 1s vs Webpack 13s
- 서버 데이터 변경 "HOT"Reload : Vite 13s vs Webpack 17s

정확한 성능 이익은 프로젝트에 따라 다르지만 전체 추세는 WebPack과 같은 대안과 비교하여 Vite의 변환에 Esbuild를 사용하여 상당한 속도를 보입니다 [2].

그러나 Esbuild는 유형 검사를 수행하지 않으므로 전체 유형 안전을 보장하기 위해`TSC-- 노미트 '를 개별적으로 실행해야 할 수도 있습니다 [4]. 'const enum'과 같은 일부 기능은 Esbuild [4]에서 아직 지원되지 않습니다.

요약하면, Esbuild의 빠른 변환 기능을 활용하는 것은 다른 Bundlers에 대한 Vite의 성능 장점의 핵심 요소입니다. 특히 개발 중에 속도 이득이 상당 할 수 있지만 고려해야 할 일부 트레이드 오프도 있습니다.

인용 :
[1] https://vitejs.dev/guide/features
[2] https://dev.to/noriste/migrating-a-150k-loc-codebase-to-vite-and-esbuild-how-part-2-3-1c08
[3] https://esbuild.github.io/faq/
[4] https://github.com/vitejs/vite/issues/1585
[5] https://github.com/vitejs/vite/issues/3193