Sim, o uso do ESBuild com o Vite pode melhorar significativamente as velocidades de transformação em comparação com o uso de outros pacotes como o WebPack. Aqui estão alguns pontos -chave:
dependências pré-bundling com esbuild
O Vite usa o ESBuild para pré-Bundle dependências, que é cerca de 20 a 30x mais rápido do que usar o compilador de texto datilografado (TSC) diretamente [3]. Esta etapa de pré-conclusão converte módulos Commonjs/UMD em ESM e melhora o tempo de início do frio de Vite em comparação com os pacotes baseados em JavaScript [1].
transformação mais rápida
O Vite aproveita o analisador digital personalizado da Esbuild, que é otimizado para desempenho. Evita algumas das laterais do compilador oficial do compilador, como o uso pesado de formas de objetos megórficos e acessos de propriedades dinâmicas desnecessárias [3].
medições de desempenho empírico
Os benchmarks mostram que o Vite com Esbuild pode ser muito mais rápido que o WebPack para determinadas operações [2]:
- Inicial `Yarn Start` Build: Vite 6s vs Webpack 150s
- Recarrega a quente componente de reação: Vite 1s vs webpack 13s
- Recarregar os dados do servidor "Hot": vite 13s vs webpack 17s
Embora os ganhos exatos de desempenho dependam do projeto, a tendência geral mostra acelerações significativas do uso do ESBuild para transformações no Vite em comparação com alternativas como o WebPack [2].
No entanto, é importante observar que o ESBuild não executa a verificação do tipo, portanto, pode ser necessário executar o `TSC -noemit` separadamente para garantir a segurança do tipo completo [4]. Alguns recursos como `const enum` também não são suportados pelo Esbuild [4].
Em resumo, alavancar os recursos de transformação rápida da Esbuild é um fator -chave nas vantagens de desempenho da Vite sobre outros pacotes. Os ganhos de velocidade podem ser substanciais, especialmente durante o desenvolvimento, mas há algumas compensações a serem consideradas também.
Citações:[1] https://vitejs.dev/guide/features
[2] https://dev.to/noriste/migrating-a-150k-loc-codebase-to-vite-and-esbuild-how-parte-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