Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Może używać ESBUILD z VITE poprawić prędkości transformacji


Może używać ESBUILD z VITE poprawić prędkości transformacji


Tak, korzystanie z ESBUILD z VITE może znacznie poprawić prędkości transformacji w porównaniu do korzystania z innych bundlerów, takich jak WebPack. Oto kilka kluczowych punktów:

Zależności przed zakłóceniem z ESBUILD

VITE używa ESBUILD do zależności przed komputerami, która jest około 20-30x szybciej niż bezpośrednio za pomocą kompilatora TypeScript (TSC) [3]. Ten etap wstępnego zwalczania przekształca moduły CommonJS/UMD na ESM i poprawia zimny czas rozpoczęcia VITE w porównaniu do bundlerów opartych na JavaScript [1].

Szybsza transformacja TypeScript

VITE wykorzystuje niestandardowy parser maszynopisu ESBUILD, który jest zoptymalizowany pod kątem wydajności. Unika niektórych nierówności prędkości w oficjalnym kompilatorze maszynopisowym, takich jak intensywne użycie kształtów obiektów megamorficznych i niepotrzebne dostępy dynamicznej właściwości [3].

empiryczne pomiary wydajności

Benchmarki pokazują, że VITE z ESBUILD może być znacznie szybsze niż Webpack dla niektórych operacji [2]:

- Początkowa kompilacja `` przędza startowa: Vite 6s vs. Webpack 150s
- React Component Hot Reload: VITE 1S VS Webpack 13s
- Zmiana danych serwera „HOT” REROOLOOAD: VITE 13S vs Webpack 17S

Chociaż dokładne zyski z wydajności będą zależeć od projektu, ogólny trend pokazuje znaczne przyspieszenie korzystania z ESBuild do transformacji w VITE w porównaniu z alternatywami takimi jak WebPack [2].

Należy jednak zauważyć, że ESBuild nie wykonuje sprawdzania typu, więc może być konieczne uruchomienie „tsc -noemit”, aby zapewnić bezpieczeństwo pełnego typu [4]. Niektóre funkcje, takie jak „const enum”, również nie są jeszcze obsługiwane przez ESBUILD [4].

Podsumowując, wykorzystanie możliwości szybkiej transformacji ESBuild jest kluczowym czynnikiem w zakresie korzyści o wydajności VITE w stosunku do innych Bundlerów. Przyrosty prędkości mogą być znaczne, szczególnie podczas rozwoju, ale należy również rozważyć pewne kompromisy.

Cytaty:
[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