技能 turborepo
📦

turborepo

低风险 ⚙️ 外部命令🌐 网络访问📁 文件系统访问🔑 环境变量

Configurar compilações de monorepositório Turborepo

也可从以下获取: antfu

Os sistemas de compilação de monorepositório podem ser complexos de configurar. Esta habilidade fornece orientação especializada sobre como configurar pipelines Turborepo, dependências de tarefas, estratégias de cache e integração CI para projetos JavaScript e TypeScript.

支持: Claude Codex Code(CC)
⚠️ 64
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“turborepo”。 Como eu configuro turbo.json para uma tarefa de build?

预期结果:

  • Para configurar uma tarefa de build em turbo.json:
  •  
  • 1. Defina a tarefa com outputs para caching:
  • {
  • "tasks": {
  • "build": {
  • "dependsOn": ["^build"],
  • "outputs": ["dist/**", "build/**"]
  • }
  • }
  • }
  •  
  • 2. A array dependsOn garante que os pacotes sejam compilados em ordem de dependência.
  • 3. A array outputs especifica quais arquivos devem ser cacheados.
  •  
  • Veja references/configuration/tasks.md para mais opções.

正在使用“turborepo”。 Como eu executo testes apenas para pacotes alterados?

预期结果:

  • Use a flag --affected para detectar automaticamente pacotes alterados:
  •  
  • turbo run test --affected
  •  
  • Isso compara com o seu branch padrão e inclui:
  • - Pacotes com alterações diretas
  • - Pacotes que dependem de pacotes alterados
  •  
  • Para branches base personalizados:
  • turbo run build --affected --affected-base=origin/develop

安全审计

低风险
v1 • 1/28/2026

Documentation-only skill containing Turborepo guidance. Static analysis flagged 1305 patterns in markdown documentation files - all findings are false positives. CLI commands, URLs, file paths, and environment variables appear only as documentation examples, not executable code. No code execution, network calls, or file system operations occur.

26
已扫描文件
5,296
分析行数
8
发现项
1
审计总数
中风险问题 (1)
External Commands in Documentation
Shell command patterns detected in markdown files. These are CLI examples in documentation, not executable code. Turborepo documentation shows command syntax like `turbo run build` and `npx turbo build` for user reference.
低风险问题 (3)
Hardcoded URLs in Documentation
URL patterns detected in documentation files. These are reference links and configuration examples, not network calls.
File Path References
File system path patterns in documentation. These document monorepo structure and file locations, not file operations.
Environment Variable Patterns
Environment variable references in documentation. These document Turborepo configuration, not environment access.
审计者: claude

质量评分

36
架构
100
可维护性
87
内容
20
社区
79
安全
83
规范符合性

你能构建什么

Configurar novo pipeline de tarefas de monorepositório

Configurar tarefas de build, test e lint com dependências e cache de saída adequados em turbo.json

Otimizar tempos de compilação CI

Configurar a flag --affected e cache remoto para executar apenas pacotes alterados em pipelines CI

Diagnosticar problemas de cache não encontrado

Diagnosticar por que tarefas estão sendo recompiladas inesperadamente e configurar padrões de saída adequados e variáveis de ambiente

试试这些提示

Configuração básica de tarefas
Como eu configuro uma tarefa de build em turbo.json que depende da compilação TypeScript? Eu quero que a tarefa cache o diretório dist e execute em paralelo com outros pacotes.
Pacotes de filtro e afetados
Eu quero executar testes apenas para pacotes que foram alterados no meu branch do Git. Como eu uso --filter ou --affected para incluir pacotes dependentes também?
Variáveis de ambiente
Minhas variáveis de ambiente não estão sendo detectadas durante as compilações. Como eu configuro a chave env em turbo.json para incluir chaves de API que devem afetar o hash do cache?
Configuração de cache remoto
Como eu configuro cache remoto com Vercel ou um servidor de cache remoto personalizado? Quais credenciais eu preciso e como eu configuro o remoto?

最佳实践

  • Configure outputs de tarefas explicitamente para maximizar acertos de cache e minimizar tempos de recompilação
  • Use a flag --affected em CI para executar apenas pacotes alterados e seus dependentes
  • Defina tarefas no nível do pacote em vez de nível raiz para habilitar paralelização adequada

避免

  • Colocar todos os comandos de build no package.json raiz - isso anula a paralelização do Turborepo
  • Usar `turbo build` em vez de `turbo run build` em scripts e arquivos package.json
  • Omitir a chave outputs - sem ela, nada é cacheado entre execuções

常见问题

Qual é a diferença entre turbo run e turbo?
Use `turbo run <tarefa>` em scripts e arquivos package.json. O atalho `turbo <tarefas>` é para comandos únicos de terminal digitados diretamente por humanos. Essa distinção garante comportamento consistente de cache.
Como eu configuro quais variáveis de ambiente afetam o cache?
Adicione variáveis à array env em turbo.json. Variáveis não listadas em env não acionarão invalidação de cache quando alteradas. A array passThrough pode excluir variáveis específicas do modo rígido de filtragem.
Por que minha tarefa está rodando quando nada foi alterado?
Verifique se as variáveis de ambiente estão configuradas adequadamente na chave env. Também verifique se inputs inclui quaisquer arquivos que devem acionar recompilações, como arquivos .env ou arquivos de configuração. Use `turbo run build --summarize` para ver as entradas de hash.
O que é o padrão Transit Nodes?
Um padrão para executar tarefas de lint e type-check em paralelo em todos os pacotes, mantendo os benefícios de cache. Tarefas que não dependem umas das outras podem ser executadas simultaneamente, reduzindo o tempo total de compilação.
Como eu pulo a compilação de um pacote quando nenhuma alteração é detectada?
Use `turbo-ignore` na sua configuração CI. Ele compara o commit atual com o pai e sai com código 0 (pular) ou 1 (compilar) com base nas alterações. Veja references/cli/commands.md para detalhes de configuração.
Qual é a diferença entre diretórios apps e packages?
Apps são aplicações que podem ser implantadas (aplicativos web, APIs). Packages são bibliotecas reutilizáveis (componentes UI, utilitários). Ambos são pacotes internos no Turborepo, mas servem propósitos diferentes em relação à versionamento e publicação.