Sí, el uso de ESBuild con VITE puede mejorar significativamente las velocidades de transformación en comparación con el uso de otros agrupadores como Webpack. Aquí hay algunos puntos clave:
Dependencias previas a Bundling con ESBuild
VITE utiliza ESBuild para depender de antes de las dependencias, que es aproximadamente 20-30x más rápido que usar el compilador TypeScript (TSC) directamente [3]. Este paso previo a Bundling convierte los módulos CommonJS/UMD en ESM y mejora el tiempo de inicio del frío de Vite en comparación con los agrupadores basados en JavaScript [1].
Transformación mecanografiada más rápida
Vite aprovecha el analizador mecanografiado personalizado de Esbuild, que está optimizado para el rendimiento. Evita algunos de los baches de velocidad en el compilador TypeScript oficial, como el uso intensivo de formas de objetos megamórficos y accesos innecesarios de propiedad dinámica [3].
Medidas de rendimiento empírico
Los puntos de referencia muestran que Vite con ESBuild puede ser mucho más rápido que Webpack para ciertas operaciones [2]:
- Build inicial de `start` inicial: VITE 6S vs Webpack 150S
- React Component Hot Reload: Vite 1S vs Webpack 13s
- El cambio de datos del servidor recarga "Hot": Vite 13S vs Webpack 17s
Si bien las ganancias de rendimiento exacta dependerán del proyecto, la tendencia general muestra aceleraciones significativas al usar ESBuild para transformaciones en VITE en comparación con alternativas como Webpack [2].
Sin embargo, es importante tener en cuenta que ESBuild no realiza la verificación de tipo, por lo que es posible que deba ejecutar `TSC -NoMit` por separado para garantizar la seguridad de tipo completo [4]. Algunas características como 'const enum` tampoco son compatibles con ESBuild [4].
En resumen, aprovechar las capacidades de transformación rápida de ESBuild es un factor clave en las ventajas de rendimiento de Vite sobre otros agrupadores. Las ganancias de velocidad pueden ser sustanciales, especialmente durante el desarrollo, pero también hay algunas compensaciones a considerar.
Citas:[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