Ja, att använda Esbuild med Vite kan förbättra transformationshastigheter avsevärt jämfört med att använda andra paket som Webpack. Här är några viktiga punkter:
Förbundsberoende med esbuild
Vite använder esbuild till pre-buntle beroenden, vilket är cirka 20-30x snabbare än att använda TypeScript Compiler (TSC) direkt [3]. Detta pre-bundling-steg konverterar CommonJS/UMD-moduler till ESM och förbättrar Vites kalla starttid jämfört med JavaScript-baserade Bundlers [1].
Snabbare typskriptomvandling
Vite utnyttjar Esbuild's Custom Typescript Parser som är optimerad för prestanda. Det undviker några av hastighetsbultarna i den officiella typskriptkomponenten, som tung användning av megamorfiska objektformer och onödiga dynamiska egenskaper [3].
Empiriska prestandamätningar
Riktmärken visar att Vite med Esbuild kan vara mycket snabbare än webbpack för vissa operationer [2]:
- Inledande "garnstart" -byggnad: vite 6s vs webpack 150s
- React Component Hot Reload: Vite 1s vs Webpack 13s
- Serverdataändring "Hot" Reload: Vite 13S vs Webpack 17s
Medan de exakta prestationsvinsten kommer att bero på projektet, visar den övergripande trenden betydande speedups från att använda ESBUILD för transformationer i Vite jämfört med alternativ som Webpack [2].
Det är emellertid viktigt att notera att Esbuild inte utför typkontroll, så du kan behöva köra `TSC - - -NoeMit` separat för att säkerställa säkerhet av full typ [4]. Vissa funktioner som `const enum 'stöds ännu inte av Esbuild [4].
Sammanfattningsvis är utnyttjande av Esbuilds snabba omvandlingsfunktioner en nyckelfaktor i Vites prestationsfördelar jämfört med andra Bundlers. Hastighetsvinsten kan vara betydande, särskilt under utvecklingen, men det finns också några avvägningar att tänka på.
Citeringar:[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