Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Може з використанням esbuild з швидкістю трансформації Vite поліпшення


Може з використанням esbuild з швидкістю трансформації Vite поліпшення


Так, використання Esbuild з Vite може значно покращити швидкість трансформації порівняно з використанням інших тортів, таких як WebPack. Ось кілька ключових моментів:

Попередні залежності з Esbuild

Vite використовує ESBUILD для попередніх залежностей, що приблизно на 20-30 разів швидше, ніж використання компілятора TypeScript (TSC) безпосередньо [3]. Цей крок попереднього зв’язку перетворює модулі CommonJS/UMD в ESM та покращує час холодного початку VITE порівняно з пакетами на основі JavaScript [1].

Більш швидка трансформація машинопису

Vite використовує спеціальний аналізатор TypeScript Esbuild, який оптимізований для продуктивності. Це дозволяє уникнути деяких швидкостей швидкості в офіційному компіляторі TypeScript, як важке використання мегаморфічних форм об'єктів та непотрібного динамічного доступу до властивостей [3].

Емпіричні вимірювання ефективності

Орієнтири показують, що Vite з Esbuild може бути набагато швидшим, ніж WebPack для певних операцій [2]:

- Початкова `Пряжа start`: vite 6s vs webpack 150s
- Компонент React Hot Reload: Vite 1S VS WebPack 13S
- Зміна даних сервера "гаряча" перезавантаження: Vite 13s проти 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-150k-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