turborepo

Orchestrate monorepo tasks with Turborepo using caching and dependency graphs.

Updated Jan 4, 2024
One-click install
npx skills add https://github.com/zeis974/TaxDOM --skill turborepo-zeis974
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: turborepo
Source: https://github.com/zeis974/TaxDOM/tree/main/.agents/skills/turborepo
Command: npx skills add https://github.com/zeis974/TaxDOM --skill turborepo-zeis974

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Turborepo provides a standardized way to orchestrate tasks across a monorepo, enabling parallel execution and caching so builds don't re-run unnecessarily.

Core Features & Use Cases

  • Task graph orchestration across apps and packages with per-package tasks to maximize parallelism.
  • Caching of task outputs and deterministic replays to speed CI and local development.
  • Support for advanced workflows like "affected" builds, pipeline configuration, and package boundaries to enforce structure.
  • Real-world scenario: when a shared library updates, downstream apps automatically rebuild only what changed.

Quick Start

Create a minimal turbo.json with a root build task and run turbo run build to see the pipeline in action.

Frequently Asked Questions about turborepo

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I speed up monorepo builds and prevent unnecessary task re-runs?

Monorepo caching stores task outputs and replays them deterministically when inputs remain unchanged. By configuring turbo.json with proper outputs and dependsOn properties, you skip redundant executions and accelerate both local development and CI pipelines.

How do I configure a task pipeline for monorepo packages?

Configure a monorepo task pipeline by creating a turbo.json file and defining root tasks. Specify per-package scripts and use the dependsOn property to establish execution order, enabling parallel processing and correct dependency graph orchestration across apps and packages.

How do monorepo dependency graphs handle shared library updates?

Monorepo dependency graphs automatically detect shared library updates and trigger downstream apps to rebuild only what changed. This affected build workflow maximizes parallelism while enforcing package boundaries to maintain structural integrity across the repository.

What is the best way to run only changed packages in CI?

Run only changed packages in CI by applying Turborepo's affected builds workflow. This approach uses task graph orchestration and caching to execute per-package tasks exclusively for modified code, maximizing parallelism and reducing pipeline execution time.

Do I need per-package scripts defined to enable caching in a monorepo?

Yes, per-package scripts must be defined to enable caching in a monorepo. Turborepo relies on these scripts alongside a properly configured turbo.json file, specifying dependsOn and outputs, to correctly cache and parallelize task executions.

Why are my cached monorepo task outputs not replaying correctly?

Cached monorepo task outputs fail to replay correctly when turbo.json lacks proper outputs definitions. Ensure every task specifies its exact output file paths and deterministic inputs so the cache can validate and skip redundant builds accurately.