Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Μπορεί να χρησιμοποιήσει το esbuild με VITE βελτιώνει τις ταχύτητες μετασχηματισμού


Μπορεί να χρησιμοποιήσει το esbuild με VITE βελτιώνει τις ταχύτητες μετασχηματισμού


Ναι, η χρήση του ESBUILD με το VITE μπορεί να βελτιώσει σημαντικά τις ταχύτητες μετασχηματισμού σε σύγκριση με τη χρήση άλλων δεσμών όπως το WebPack. Εδώ είναι μερικά βασικά σημεία:

Εξάρτηση πριν από τη συρρίκνωση με το esbuild

Το VITE χρησιμοποιεί το ESBUILD για να προ-δεσμευτείτε εξαρτήσεις, οι οποίες είναι περίπου 20-30 φορές ταχύτερες από τη χρήση του TypeScript Compiler (TSC) απευθείας [3]. Αυτό το βήμα πριν από τη συρρίκνωση μετατρέπει τις ενότητες κοινής ουσίας/UMD σε ESM και βελτιώνει τον κρύο χρόνο έναρξης του VITE σε σύγκριση με τους bundlers με βάση το JavaScript [1].

ταχύτερος μετασχηματισμός τύπων

Η VITE αξιοποιεί τον προσαρμοσμένο αναλυτή του Esbuild, ο οποίος είναι βελτιστοποιημένος για την απόδοση. Αποφεύγει μερικές από τις ταχύτητες που χτυπάνε στον επίσημο μεταγλωττιστή TypeScript, όπως η βαριά χρήση των μεγεθύτων σχημάτων αντικειμένων και των περιττών δυναμικών προσβάσιμων ιδιοτήτων [3].

Εμπειρικές μετρήσεις απόδοσης

Τα σημεία αναφοράς δείχνουν ότι το VITE με το ESBUILD μπορεί να είναι πολύ πιο γρήγορο από το webpack για ορισμένες λειτουργίες [2]:

- Αρχική `Yarn Start` Build: Vite 6s vs Webpack 150s
- React Component Hot Reload: Vite 1S VS WebPack 13S
- Δεδομένα διακομιστή Αλλαγή "Hot" Reload: Vite 13S vs Webpack 17s

Ενώ τα ακριβή κέρδη απόδοσης θα εξαρτηθούν από το έργο, η συνολική τάση δείχνει σημαντικές επιταγές από τη χρήση του ESBUILD για μετασχηματισμούς σε VITE σε σύγκριση με εναλλακτικές λύσεις όπως το WebPack [2].

Ωστόσο, είναι σημαντικό να σημειωθεί ότι το ESBUILD δεν εκτελεί έλεγχο τύπου, οπότε ίσως χρειαστεί να εκτελέσετε το `TSC -noemit` ξεχωριστά για να εξασφαλίσετε την ασφάλεια πλήρους τύπου [4]. Ορισμένα χαρακτηριστικά όπως το `const enum` δεν υποστηρίζονται ακόμη από το Esbuild [4].

Συνοπτικά, η αξιοποίηση των δυνατοτήτων γρήγορου μετασχηματισμού του Esbuild αποτελεί βασικό παράγοντα στα πλεονεκτήματα της απόδοσης του VITE έναντι άλλων δεσμών. Τα κέρδη ταχύτητας μπορεί να είναι σημαντικά, ειδικά κατά τη διάρκεια της ανάπτυξης, αλλά υπάρχουν και κάποιες συμφωνίες που πρέπει να εξεταστούν.

Αναφορές:
[1] https://vitejs.dev/guide/features
[2] https://dev.to/noriste/migrating-a-10k-loc-codebase-to-vite-and-esbuild-how-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