Kyllä, Esbuildin käyttäminen VITE: n kanssa voi parantaa merkittävästi muunnosnopeutta verrattuna muiden kimppujen, kuten Webpackin, käyttämiseen. Tässä on muutama avainpiste:
Esivalojen riippuvuudet Esbuildilla
Vite käyttää Esbuildia edeltäviä riippuvuuksia edeltävään riippuvuuteen, joka on noin 20-30x nopeampi kuin TEKSI-kääntäjän (TSC) käyttäminen [3]. Tämä ennakkoluuloton vaihe muuntaa CommonJS/UMD-moduulit ESM: ksi ja parantaa Vite-kylmän aloituksen aikaa verrattuna JavaScript-pohjaisiin niput [1].
Nopeampi TypeScript Transformation
Vite hyödyntää Esbuildin mukautettua tyyppikirjoittajaa, joka on optimoitu suorituskykyyn. Siinä vältetään joitain virallisen TypeScript -kääntäjän nopeuskuoppia, kuten megamorfisten esineiden muodon ja tarpeettomien dynaamisten ominaisuuksien voimakas käyttö [3].
empiiriset suorituskyvyn mittaukset
Vertailuarvot osoittavat, että Vite Esbuildin kanssa voi olla paljon nopeampaa kuin tietyille toiminnoille webpack [2]:
- Alkuperäinen `lanka start` rakenne: Vite 6S vs Webpack 150s
- React Component Hot Reload: Vite 1S vs Webpack 13s
- Palvelintiedot muuttavat "Hot" Reload: Vite 13S vs Webpack 17s
Vaikka tarkat suorituskyvyn voitot riippuvat projektista, yleinen suuntaus osoittaa merkittäviä nopeuksia käyttämästä Esbuildia Vite -muunnoksiin verrattuna vaihtoehtoihin, kuten Webpack [2].
On kuitenkin tärkeää huomata, että Esbuild ei suorita tyypin tarkistusta, joten joudut ehkä suorittamaan `TSC - -noemit` erikseen täydellisen tyyppisen turvallisuuden varmistamiseksi [4]. Joitakin ominaisuuksia, kuten `const enum`, eivät myöskään tue Esbuild [4].
Yhteenvetona voidaan todeta, että Esbuildin nopean muutosominaisuuksien hyödyntäminen on avaintekijä VITE: n suorituskykyetuissa muihin kimppuihin nähden. Nopeuden voitot voivat olla huomattavia, etenkin kehityksen aikana, mutta on myös otettava huomioon joitain kompromisseja.
Viittaukset:[1] https://vitejs.dev/guide/features
.
[3] https://esbuild.github.io/faq/
[4] https://github.com/vitejs/vite/issues/1585
[5] https://github.com/vitejs/vite/issues/3193