Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Lahko uporaba esbuilda z vite izboljša hitrost transformacije


Lahko uporaba esbuilda z vite izboljša hitrost transformacije


Da, uporaba esbuilda z Vite lahko bistveno izboljša hitrost transformacije v primerjavi z uporabo drugih svežnja, kot je spletni paket. Tu je nekaj ključnih točk:

Predhodne odvisnosti z esbuildom

VITE uporablja Esbuild za odvisnosti pred vožnjo, ki je približno 20-30x hitreje kot z neposredno uporabo prevajalnika TypeScript (TSC) [3]. Ta korak pred vožnjo pretvori module CommonJS/UMD v ESM in izboljša Vitejev hladni čas začetka v primerjavi z javascriptskimi svežnji [1].

Hitrejša transformacija TypeScript

Vite uporabi Esbuild -ov po meri razčlenjevalnika, ki je optimiziran za zmogljivost. Izogiba se nekaterih hitrostnih udarcev v uradnem prevajalniku Typescript, kot so velika uporaba megamorfnih oblik objektov in nepotrebne dinamične dostopne lastnosti [3].

Empirične meritve uspešnosti

Merila kažejo, da je Vite z esbuildom lahko za nekatere operacije veliko hitrejši od spletnega paketa [2]:

- Začetni `Yarn Start` Build: Vite 6s vs Webpack 150S
- React Component Hot Reload: Vite 1s vs Webpack 13S
- Sprememba podatkov strežnika "vroče" ponovno naloži: Vite 13s vs Webpack 17S

Medtem ko bodo natančni dobički uspešnosti odvisni od projekta, celotni trend kaže na znatne hitrosti uporabe esbuild za transformacije v Vite v primerjavi z alternativami, kot je WebPack [2].

Pomembno pa je opozoriti, da Esbuild ne izvaja preverjanja tipa, zato boste morda morali ločeno zagnati `tsc --noemit`, da zagotovite varnost polne vrste [4]. Nekatere funkcije, kot je "const enum", še ne podpira Esbuild [4].

Če povzamemo, je izkoriščanje zmogljivosti hitre preobrazbe Esbuild ključni dejavnik pri Viteovih prednostih pred drugimi svežnji. Dobički za hitrost so lahko znatni, zlasti med razvojem, vendar je treba upoštevati tudi nekaj kompromisov.

Navedbe:
[1] https://vitejs.dev/guide/features
[2] https://dev.to/noriste/migring-a-150k-loc-codebase-to-vite-in-esbuild-how-del-2-3-1c08
[3] https://esbuild.github.io/faq/
[4] https://github.com/vitejs/vite/isissue/1585
[5] https://github.com/vitejs/vite/isissue/3193