Igen, az Esbuild használata a VITE -vel jelentősen javíthatja az átalakulási sebességet, összehasonlítva más csomagolók, például a WebPack használatával. Íme néhány kulcsfontosságú pont:
A Bunding Pre-Bunding Függőségek az Esbuild-rel
A Vite az Esbuild-t használja az előzetes függőségek előtt, ami körülbelül 20-30x gyorsabb, mint a TypeScript Compiler (TSC) közvetlenül [3]. Ez az előremenő lépés átalakítja a CommonJS/UMD modulokat ESM-ként, és javítja a Vite hidegindítási idejét a JavaScript-alapú csomagolókhoz képest [1].
Gyorsabb gépelési transzformáció
A VITE kihasználja az Esbuild egyedi TypeScript elemzőjét, amelyet a teljesítményre optimalizáltak. Kerüli a hivatalos TypeScript fordító néhány sebesség -ütközését, például a megamorf objektumok alakjainak nehéz felhasználását és a szükségtelen dinamikus tulajdonságokhoz való hozzáférést [3].
Empirikus teljesítménymérések
A referenciaértékek azt mutatják, hogy az Esbuild Vite sokkal gyorsabb lehet, mint a Webpack bizonyos műveletekhez [2]:
- Kezdeti „fonalak indítása” Build: Vite 6s vs Webpack 150s
- React Component Hot Reload: Vite 1S vs Webpack 13s
- A szerver adatok "forró" újratöltése: Vite 13s vs Webpack 17s
Noha a pontos teljesítménynövekedés a projekttől függ, az általános tendencia jelentős gyorsulást mutat az Esbuild használatával a Vite -ben történő átalakításokhoz, mint az olyan alternatívákhoz képest, mint a WebPack [2].
Fontos azonban megjegyezni, hogy az Esbuild nem hajtja végre a típus -ellenőrzést, ezért előfordulhat, hogy a teljes típusú biztonság biztosítása érdekében külön kell futtatnia a `tsc -noemit" -et [4]. Néhány olyan funkciót, mint a „const enum”, az Esbuild még nem támogatja [4].
Összefoglalva: az Esbuild gyors átalakulási képességeinek kiaknázása kulcsfontosságú tényező a Vite teljesítményének előnyeiben más kötegekkel szemben. A sebességnövekedés jelentős lehet, különösen a fejlesztés során, de van néhány kompromisszum, amelyet figyelembe kell venni.
Idézetek:[1] https://vitejs.dev/guide/features
[2] https://dev.to/noriste/migrating-a-150k-loc-codebase-to-vite-and-esbuild-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