turborepo
Installation
SKILL.md
Turborepo
Overview
Turborepo is a high-performance build system for JavaScript/TypeScript monorepos that intelligently caches task outputs, parallelizes execution across CPU cores, and ensures teams only rebuild what has changed. It integrates with npm, yarn, and pnpm workspaces.
Instructions
- When setting up a monorepo, define tasks in
turbo.jsonwithdependsOnfor ordering, use^prefix for topological dependencies (e.g.,"dependsOn": ["^build"]), and specifyoutputsfor cacheable artifacts. - When configuring caching, define
outputsarrays for each task (["dist/**", ".next/**"]), list all build-affecting environment variables inenvorglobalEnv, and set up Remote Cache for cross-developer sharing. - When filtering workspaces, use
--filter=@app/webto target specific packages,--filter=...[HEAD~1]for changed packages, andturbo run build --graphto visualize the dependency graph. - When optimizing Docker builds, use
turbo prune --scope=@app/webto generate a minimal Docker context containing only the targeted package and its dependencies. - When setting up CI/CD, enable Remote Cache for cross-PR cache sharing, use
--dry-run=jsonfor pipeline analysis, and leverage incremental builds that only rebuild packages affected by PR changes. - When organizing shared packages, create focused internal packages (
@repo/ui,@repo/db,@repo/auth) with sharedtsconfigand ESLint configs.