Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)48 mil · #4413

turborepo-caching

Ajuda seu agente a configurar o Turborepo para compilações rápidas. Ele usa cache para acelerar o desenvolvimento em projetos grandes.

O que ela faz

Esta ferramenta ajuda a configurar o Turborepo para construir seus projetos de forma mais rápida e eficiente. Ela otimiza o processo de construção, permitindo que você reutilize partes já construídas e compartilhe resultados entre computadores.

Quando usar

  • ✓Ao iniciar um novo projeto com Turborepo.
  • ✓Quando quiser acelerar o processo de construção do seu código.
  • ✓Ao configurar um sistema para compartilhar resultados de construção entre equipes.

Exemplo do que pedir para a IA

“Como configuro o Turborepo para usar cache local e remoto?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/turborepo-caching/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/turborepo-caching/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O Turborepo analisa quais partes do seu código mudaram e reutiliza os resultados de compilações anteriores. Ele pode salvar esses resultados em um local na sua máquina ou em um servidor compartilhado para que outros possam usá-los.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill turborepo-caching

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/turborepo-caching/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Cache do Turborepo

Padrões de produção para otimização de build do Turborepo.

Não use esta habilidade quando

  • A tarefa não estiver relacionada ao cache do turborepo
  • Você precisar de um domínio ou ferramenta diferente fora deste escopo

Instruções

  • Clarifique objetivos, restrições e entradas necessárias.
  • Aplique as melhores práticas relevantes e valide os resultados.
  • Forneça etapas acionáveis e verificação.

Use esta habilidade quando

  • Configurando novos projetos Turborepo
  • Configurando pipelines de build
  • Implementando cache remoto
  • Otimizando o desempenho de CI/CD
  • Migrando de outras ferramentas de monorepo
  • Depurando falhas de cache

Conceitos Principais

1. Arquitetura do Turborepo

Workspace Root/
├── apps/
│   ├── web/
│   │   └── package.json
│   └── docs/
│       └── package.json
├── packages/
│   ├── ui/
│   │   └── package.json
│   └── config/
│       └── package.json
├── turbo.json
└── package.json

2. Conceitos de Pipeline

Conceito Descrição
dependsOn Tarefas que devem ser concluídas primeiro
cache Se os resultados devem ser cacheados
outputs Arquivos a serem cacheados
inputs Arquivos que afetam a chave de cache
persistent Tarefas de longa duração (servidores de desenvolvimento)

Modelos

Modelo 1: Configuração do turbo.json

{
  "$schema": "https://turbo.build/schema.json",
  "globalDependencies": [
    ".env",
    ".env.local"
  ],
  "globalEnv": [
    "NODE_ENV",
    "VERCEL_URL"
  ],
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": [
        "dist/**",
        ".next/**",
        "!.next/cache/**"
      ],
      "env": [
        "API_URL",
        "NEXT_PUBLIC_*"
      ]
    },
    "test": {
      "dependsOn": ["build"],
      "outputs": ["coverage/**"],
      "inputs": [
        "src/**/*.tsx",
        "src/**/*.ts",
        "test/**/*.ts"
      ]
    },
    "lint": {
      "outputs": [],
      "cache": true
    },
    "typecheck": {
      "dependsOn": ["^build"],
      "outputs": []
    },
    "dev": {
      "cache": false,
      "persistent": true
    },
    "clean": {
      "cache": false
    }
  }
}

Modelo 2: Pipeline Específico do Pacote

// apps/web/turbo.json
{
  "$schema": "https://turbo.build/schema.json",
  "extends": ["//"],
  "pipeline": {
    "build": {
      "outputs": [".next/**", "!.next/cache/**"],
      "env": [
        "NEXT_PUBLIC_API_URL",
        "NEXT_PUBLIC_ANALYTICS_ID"
      ]
    },
    "test": {
      "outputs": ["coverage/**"],
      "inputs": [
        "src/**",
        "tests/**",
        "jest.config.js"
      ]
    }
  }
}

Modelo 3: Cache Remoto com Vercel

# Login to Vercel
npx turbo login

# Link to Vercel project
npx turbo link

# Run with remote cache
turbo build --remote-only

# CI environment variables
TURBO_TOKEN=your-token
TURBO_TEAM=your-team
# .github/workflows/ci.yml
name: CI

on:
  push:
    branches: [main]
  pull_request:

env:
  TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
  TURBO_TEAM: ${{ vars.TURBO_TEAM }}

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: 'npm'

      - name: Install dependencies
        run: npm ci

      - name: Build
        run: npx turbo build --filter='...[origin/main]'

      - name: Test
        run: npx turbo test --filter='...[origin/main]'

Modelo 4: Cache Remoto Auto-Hospedado

// Servidor de cache remoto personalizado (Express)
import express from 'express';
import { createReadStream, createWriteStream } from 'fs';
import { mkdir } from 'fs/promises';
import { join } from 'path';

const app = express();
const CACHE_DIR = './cache';

// Obter artefato
app.get('/v8/artifacts/:hash', async (req, res) => {
  const { hash } = req.params;
  const team = req.query.teamId || 'default';
  const filePath = join(CACHE_DIR, team, hash);

  try {
    const stream = createReadStream(filePath);
    stream.pipe(res);
  } catch {
    res.status(404).send('Não encontrado');
  }
});

// Colocar artefato
app.put('/v8/artifacts/:hash', async (req, res) => {
  const { hash } = req.params;
  const team = req.query.teamId || 'default';
  const dir = join(CACHE_DIR, team);
  const filePath = join(dir, hash);

  await mkdir(dir, { recursive: true });

  const stream = createWriteStream(filePath);
  req.pipe(stream);

  stream.on('finish', () => {
    res.json({ urls: [`${req.protocol}://${req.get('host')}/v8/artifacts/${hash}`] });
  });
});


…
Perguntas frequentes

O que é 'cache'?

Cache é como uma memória temporária. O Turborepo guarda os resultados de tarefas já feitas para não precisar refazê-las se nada importante mudar.

Qual a diferença entre cache local e remoto?

Cache local fica no seu computador, sendo rápido para você. Cache remoto é compartilhado em um servidor, permitindo que toda a equipe use os mesmos resultados de construção.

O que são 'pipelines'?

Pipelines são sequências de tarefas que o Turborepo executa, como 'build' (construir) ou 'test' (testar). Você pode configurar como essas tarefas dependem umas das outras e o que deve ser guardado no cache.

Detalhes

Descrição original do autor

Configure Turborepo for efficient monorepo builds with local and remote caching. Use when setting up Turborepo, optimizing build pipelines, or implementing distributed caching.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4413
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas