Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Gali naudotis „Esbuild“ su „Vite“, pagerinkite transformacijos greitį


Gali naudotis „Esbuild“ su „Vite“, pagerinkite transformacijos greitį


Taip, „Esbuild“ naudojimas naudojant „Vite“ gali žymiai pagerinti transformacijos greitį, palyginti su kitais bičiuliais, tokiais kaip „Webpack“. Čia yra keli pagrindiniai dalykai:

Priklausomybės nuo „EsBuild“ išankstinė dalis

„Vite“ naudoja „EsBuild“ priklausomybėms išankstinei vienkartinei įmonei, kuri yra maždaug 20–30x greičiau, nei tiesiogiai naudoti „TypeScript“ kompiliatorių (TSC) [3]. Šis išankstinio jungimo žingsnis paverčia „CommonJS/UMD“ modulius į ESM ir pagerina „Vite“ šaltą pradžios laiką, palyginti su „JavaScript“ pagrindu sukurtais ryšuliais [1].

greitesnis spausdinimo transliacija

„Vite“ pasinaudoja „Esbuild“ pasirinktiniu tipscript analizatoriumi, kuris yra optimizuotas našumui. Tai išvengia kai kurių oficialiojo „TypeScript“ kompiliatoriaus greičio iškilimų, tokių kaip sunkus megamorfinių objektų formų naudojimas ir nereikalingos dinaminės nuosavybės prieigos [3].

empiriniai veikimo matavimai

Etalai rodo, kad „Vite“ su „Esbuild“ gali būti daug greitesnis nei tam tikrų operacijų tinklalapyje [2]:

- Pradinis „Verpalų pradžia“ Build: Vite 6s vs Webpack 150s
- „React Component Hot Reload“: „Vite 1s vs“ tinklalapio 13S
- Serverio duomenų keitimas „karštas“ perkrovimas: „Vite 13s vs“ tinklalapyje 17s

Nors tikslus našumo padidėjimas priklausys nuo projekto, bendra tendencija rodo reikšmingą „Esbuild“ naudojimo transformacijoms „Vite“, palyginti su alternatyvomis, tokiomis kaip „Webpack“ [2].

Tačiau svarbu pažymėti, kad „Esbuild“ neatlieka tipo tikrinimo, todėl gali tekti paleisti „TSC -neemit“ atskirai, kad užtikrintumėte viso tipo saugumą [4]. Kai kurios funkcijos, tokios kaip „const enum“, dar nepalaiko „Esbuild“ [4].

Apibendrinant galima pasakyti, kad „Esbuild“ greito transformacijos galimybių panaudojimas yra pagrindinis Vite veiklos pranašumų, palyginti su kitais pakaušiais, veiksnys. Greičio padidėjimas gali būti didelis, ypač plėtros metu, tačiau taip pat reikia atsižvelgti ir į kompromisus.

Citatos:
[1] https://vitejs.dev/guide/features
[2] https://dev.to/noriste/migration-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