Audiência: Full-stack / platform teams
Formato: Guia prática
Contexto: CI/CD mais rápido para equipes distribuídas
TL;DR
- Turborepo permite acelerar builds em monorepos com caching e execução incremental
- Bem configurado, pode reduzir tempos de CI/CD de minutos a segundos
- A chave está em caching remoto, pipelines claros e tarefas bem definidas
O que é Turborepo?
Turborepo é uma ferramenta de build system para monorepos criada pela Vercel.
Permite:
- Executar tarefas em múltiplos pacotes de forma inteligente
- Cachear resultados para evitar trabalho desnecessário
- Compartilhar resultados entre desenvolvedores e CI
Em resumo: execute apenas o que mudou
Problema típico em monorepos
Sem otimização:
- Builds lentos
- CI custoso
- Tempos longos de feedback
Exemplo:
npm run build
→ reconstrói tudo, mesmo o que não mudou
Como Turborepo resolve
1. Execução incremental
Executa apenas tarefas em pacotes afetados:
turbo run build
2. Caching automático
Se nada mudou:
✔ build (cache hit)
3. Caching remoto (chave para equipes)
Permite compartilhar resultados entre:
- desenvolvedores
- CI
- diferentes ambientes
Setup mínimo
1. Instalar
npm install turbo --save-dev
2. Configurar
turbo.json
{
"$schema": "https://turbo.build/schema.json",
"pipeline": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**"]
},
"dev": {
"cache": false
}
}
}
3. Executar
turbo run build
Otimização real (o que faz a diferença)
Define outputs corretamente
"outputs": ["dist/**"]
Se você não fizer isso:
não há cache efetivo
Evita tarefas desnecessárias
Divida bem:
- build
- lint
- test
Use caching remoto
Com Vercel ou self-hosted:
npx turbo login
npx turbo link
Paralelismo
Turborepo executa tarefas em paralelo automaticamente
Mas certifique-se de que:
- não haja dependências desnecessárias
Exemplo real de impacto
Antes:
- CI: 12 minutos
Depois:
- CI: 2–3 minutos
- Builds locais: quase instantâneos
Erros comuns
- Não definir outputs → cache inútil
- Tasks muito acopladas
- Ignorar caching remoto
- Executar tudo em CI sempre
Quando usar Turborepo
Ideal para:
- monorepos JS/TS
- múltiplas apps (frontend + backend)
- equipes distribuídas
Quando NÃO
- repositórios pequenos
- um único pacote
Veredicto
Turborepo não é apenas uma ferramenta de performance.
É uma forma de pensar o build system:
execute menos, reutilize mais
Reflexão final
O problema não é o monorepo.
É executar trabalho desnecessário.
Otimizar isso muda completamente a velocidade da sua equipe.
