Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Voi käyttää Esbuildia Vite: n kanssa parantaa muutoksenopeuksia


Voi käyttää Esbuildia Vite: n kanssa parantaa muutoksenopeuksia


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