.jsonc: 주석을 허용하는 JSON 확장 형식
tasks: 각 태스크의 의존 관계 명시
ready.dependesOn:^ready : 의존하는 ready 먼저 수행
ready.inputs:TURBO_DEFAULT,!**/*.md,!**/*.test.*: turbo의 기본 설정(git diff)은 모두 변경 사항으로 감지 but md 확장자, 테스트 코드는 감지 X
ready.outputs:dist/**,build/**: 캐싱할 빌드 결과물
build.dependsOn:ready,^build: ready 수행 > 의존하는 build 먼저 수행dev.cache:false, dev.persistant:true: 개발 서버는 캐싱할 것이 없음boundaries: 패키지 경계 규칙
의존 관계 명시
// turbo.json
"boundaries": {
"tags": {
"app": {
"dependencies": { "deny": ["app"] }
},
"library": {
"dependencies": { "deny": ["app"] }
},
"infra": {
"dependencies": { "deny": ["app", "library"] }
},
"config": {
"dependencies": { "deny": ["app", "library", "infra"] }
}
}
},
패키지 경계 규칙: config → infra → library → app (하위 → 상위)
각 패키지 설정
// tailwind-config/turbo.json
{ "extends": ["//"], "tags": ["config"] }
CI에서 검사
- name: Package boundaries
run: turbo boundaries --filter="./packages/*"
turbo devtools
remote cache
vercel link로 vercel에 연결
github actions에서 환경 변수 설정
// .github/workflows/ci-cd.yml
jobs:
ci:
runs-on: ubuntu-latest
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}