Turborepo는 Vercel이 개발한 JavaScript/TypeScript 모노레포 빌드 시스템이다. 태스크 파이프라인, 원격 캐싱, 병렬 실행으로 대규모 모노레포의 빌드 속도를 획기적으로 개선한다.
Turborepo vs Nx 비교
| 항목 | Turborepo | Nx |
|---|
| 설정 복잡도 | 낮음 | 중간 |
| 코드 생성기 | 미지원 | 지원 |
| 플러그인 | 없음 | 풍부 |
| 원격 캐시 | Vercel Remote Cache | Nx Cloud |
| 영향 분석 | 기본 | 심층 |
| 주요 사용처 | Next.js 프로젝트 | 엔터프라이즈 모노레포 |
turbo.json 설정
json
{
"$schema": "https://turbo.build/schema.json",
"pipeline": {
"build": {
"dependsOn": ["^build"],
"outputs": [".next/**", "dist/**"],
"cache": true
},
"test": {
"dependsOn": ["build"],
"outputs": ["coverage/**"],
"cache": true,
"inputs": ["src/**/*.ts", "src/**/*.tsx", "test/**/*.ts"]
},
"lint": {
"outputs": []
},
"dev": {
"cache": false,
"persistent": true
}
},
"remoteCache": {
"signature": true
}
}
프로젝트 구조 및 실행
bash
# 모든 앱 빌드 (캐시 활용)
npx turbo build
# 영향받은 패키지만 (git diff 기반)
npx turbo build --filter=[origin/main]
# 특정 패키지와 의존성
npx turbo build --filter=web...
# 병렬 개발 서버 실행
npx turbo dev
# 원격 캐시 연결
npx turbo login
npx turbo link
관련 문서