# Vite vs esbuild: qual build tool para o CI?

> Vite vs esbuild no CI: build tool completo vs bundler puro, velocidade, saída e plugins. Qual se encaixa no seu pipeline de produção.

Source: https://latchkey.dev/pt/learn/tool-comparisons/vite-vs-esbuild  
Updated: 2026-06-26

Eles se sobrepõem mas não fazem o mesmo trabalho: o esbuild é um bundler puro e ultrarrápido, enquanto o Vite é um build tool completo que usa o esbuild (e o Rollup) internamente.

O esbuild (Go) é um bundler/transpiler de baixo nível valorizado pela velocidade. O Vite é um build tool e dev server de mais alto nível que usa o esbuild para transformações de dev e o Rollup para builds de produção, adicionando HMR, plugins e integração com frameworks.

## Comparison

|  | Vite | esbuild |
| --- | --- | --- |
| Camada | Build tool completo + dev server | Bundler/transpiler de baixo nível |
| Velocidade | Rápido (esbuild + Rollup) | Extremamente rápido |
| Dev server / HMR | Sim | Não (apenas bundler) |
| Saída de produção | Rollup (otimizada) | esbuild (menos ajustes) |
| Plugins / encaixe com framework | Grande (plugins do Rollup) | Menor, de mais baixo nível |

## No CI

A maioria dos apps quer o Vite: ele oferece um pipeline completo (dev server, HMR, plugins, presets de framework) e produz builds otimizados do Rollup enquanto ainda usa o esbuild para ganhar velocidade. Recorra ao esbuild diretamente quando precisar de uma etapa mínima e ultrarrápida de bundling/transpilação em um script ou ferramenta e não precisar de um build ciente do framework. Na prática, usar o Vite já significa que você está se apoiando no esbuild por baixo dos panos.

## Deixe mais rápido

Faça cache das dependências e do build cache com chave no seu lockfile para evitar rebuilds a frio. Ambos rodam igual em runners de CI; runners gerenciados mais rápidos encurtam a etapa de build em apps grandes.

## Benchmark on your repository before choosing

Build-tool benchmarks published by vendors use repositories chosen to show a difference. Yours is the only one that matters, and both a cold and a warm measurement are needed because CI mostly runs cold.

```Terminal
# cold: no cache, the CI condition
rm -rf node_modules/.cache dist && time <tool> build

# warm: the local development condition
time <tool> build

# and the one people forget: incremental after a one-line change
echo "// touch" >> src/index.ts && time <tool> build
```

> Cold and warm can rank the two tools in opposite orders. Decide which one you are optimising for first: CI time is cold, developer feedback is warm and incremental.

## O veredito

Construindo um app ou projeto de framework: Vite para o pipeline completo e otimizado. Precisando de um bundler mínimo e ultrarrápido em um script: esbuild diretamente. São camadas diferentes - o Vite já usa o esbuild por você.

## FAQ

### Vite vs esbuild: Which Build Tool for CI?

esbuild (Go) is a low-level bundler/transpiler prized for speed. Vite is a higher-level build tool and dev server that uses esbuild for dev transforms and Rollup for production builds, adding HMR, plugins, and framework integration.

### In CI?

Most apps want Vite: it gives a complete pipeline (dev server, HMR, plugins, framework presets) and produces optimized Rollup builds while still using esbuild for speed. Reach for esbuild directly when you need a minimal, ultra-fast bundling/transpiling step in a script or tool and do not need a framework-aware build.

### Speed it up?

Cache dependencies and the build cache keyed on your lockfile to avoid cold rebuilds. Both run the same on CI runners; faster managed runners shorten the build step on large apps.

### Which should I choose?

Building an app or framework project: Vite for the full, optimized pipeline. Need a minimal ultra-fast bundler in a script: esbuild directly. They are different layers - Vite already uses esbuild for you.

---

Latchkey runs CI/CD that repairs its own failures. Agent entry points: https://latchkey.dev/agent.txt, https://latchkey.dev/openapi.json, https://latchkey.dev/llms.txt
