Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kan använda esbuild med vite förbättra omvandlingshastigheter


Kan använda esbuild med vite förbättra omvandlingshastigheter


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