Áno, použitie spoločnosti ESBUILD s VITE môže výrazne zlepšiť rýchlosť transformácie v porovnaní s používaním iných zväzkov, ako je webpack. Tu je niekoľko kľúčových bodov:
predbežné závislosti s Esbuildom
Spoločnosť Vite používa EsBuild na predbežné závislosti, ktoré sú asi o 20-30x rýchlejšie ako priamo pomocou TypeScript Compiler (TSC) priamo [3]. Tento krok predbežného boja premieňa moduly CommonJS/UMD na ESM a zlepšuje čas začiatku za studena VITE v porovnaní s zväzkami založenými na JavaScript [1].
Rýchlejšia transformácia TypeScript
VITE využíva vlastný syntaktický analyzátor ESBUILD SEPERScript, ktorý je optimalizovaný pre výkon. Vyhýba sa niektorým z rýchlostných hrbolkov v oficiálnom kompilátore TypeScript, ako je napríklad ťažké používanie tvarov megamorfných objektov a zbytočné prístupy k dynamickým vlastnostiam [3].
Empirické merania výkonu
Referenčné hodnoty ukazujú, že Vite s Esbuildom môže byť pre určité operácie oveľa rýchlejší ako webpack [2]:
- Počiatočné `priadza Štart` zostavenie: Vite 6s vs Webpack 150s
- React Component Hot Reload: Vite 1s vs Webpack 13s
- Zmena údajov servera „Hot“ Reload: Vite 13s vs Webpack 17S
Zatiaľ čo presné zisky z výkonu budú závisieť od projektu, celkový trend ukazuje významné zrýchlenie pri používaní ESBUILD na transformácie vo VITE v porovnaní s alternatívami ako Webpack [2].
Je však dôležité poznamenať, že spoločnosť EsBuild nevykonáva kontrolu typu, takže možno budete musieť spustiť `tsc -noemit` osobitne, aby ste zaistili bezpečnosť úplného typu [4]. Niektoré funkcie ako `const enum" ešte nie sú podporované Esbuildom [4].
Stručne povedané, využitie rýchleho transformácie ESBUILD je kľúčovým faktorom výkonnostných výhod VITE oproti ostatným zväzkom. Zisky rýchlosti môžu byť značné, najmä počas vývoja, ale je potrebné zvážiť aj určité kompromisy.
Citácie:[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/viitejs/vite/issues/1585
[5] https://github.com/viitejs/vite/issues/3193