Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Môže používať EsBuild s VITE zlepšiť rýchlosť transformácie


Môže používať EsBuild s VITE zlepšiť rýchlosť transformácie


Á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