run
turbo.json에 지정된 작업을 실행합니다.
- [tasks]: Turborepo는 한 번에 하나 또는 여러 작업을 실행할 수 있습니다.
turbo를 통해 작업을 실행하려면turbo.json에 지정되어야 합니다. - [options]: 옵션은
turbo run명령어의 동작을 제어하는 데 사용됩니다. 사용 가능한 플래그 옵션은 아래에 설명되어 있습니다. - [-- [args passed to tasks]]: 하위 스크립트에 인수를 전달할 수도 있습니다. 모든 인수는 run 명령에 지정된 모든 작업에 전달됩니다.
Good to know:
turbo run은 turbo의 별칭입니다. turbo run build lint check-types는
turbo build lint check-types와 동일합니다. 사용 편의성을 위해 CI
파이프라인에서는 turbo run을,
로컬에서는 전역
turbo와 함께
turbo를 사용하는 것을 권장합니다.
작업이 제공되지 않으면 turbo는 저장소의 패키지에서 사용 가능한 작업을 표시합니다.
옵션
--affected
현재 브랜치의 변경 사항에 영향을 받는 패키지만 필터링합니다.
기본적으로 이 플래그는 --filter=...[main...HEAD]와 동일합니다. 이는 Git의 관점에서 main과 HEAD 사이의 변경 사항을 고려합니다.
비교를 위해서는 base와 head 사이의 모든 내용이 체크아웃에 존재해야 합니다. 체크아웃이 너무 얕으면 모든 패키지가 변경된 것으로 간주됩니다.
예를 들어, Git을 --filter=blob:none --depth=0으로 체크아웃하도록 설정하면 --affected가 올바르게 작동하는 데 필요한 히스토리를 확보할 수 있습니다.
각각의 시스템 환경 변수를 사용하여 기본 base와 head를 재정의할 수 있습니다.
--cache <options>
기본값: local:rw,remote:rw
실행할 캐싱 소스를 지정합니다. 쉼표로 구분된 옵션 목록을 허용합니다:
local: 로컬 파일 시스템 캐시 사용remote: Remote Cache 사용
캐싱 소스가 생략되면 읽기와 쓰기가 모두 비활성화됩니다.
캐시 소스는 다음 값을 사용합니다:
rw: 읽기 및 쓰기r: 읽기 전용w: 쓰기 전용- 없음 (
local:): 캐시를 사용하지 않습니다. 캐시 소스 옵션을 생략하는 것과 동일합니다.
--cache-dir <path>
기본값: .turbo/cache
파일 시스템 캐시 디렉토리를 지정합니다.
변경할 때 디렉토리가 .gitignore에 있는지 확인하세요.
동일한 동작은 TURBO_CACHE_DIR=example/path 시스템 변수를 통해서도 설정할 수 있습니다.
--concurrency <number | percentage>
기본값: 10
작업 실행의 최대 동시성을 설정/제한합니다. 1 이상의 정수 또는 50%와 같은 백분율 값이어야 합니다.
- 직렬 실행(한 번에 하나의 작업)을 강제하려면
1을 사용합니다. - 사용 가능한 모든 논리 프로세서를 사용하려면
100%를 사용합니다. --parallel플래그도 전달되면 이 옵션은 무시됩니다.
--continue[=<option>]
기본값: never
오류가 발생할 때(예: 작업에서 0이 아닌 종료 코드) turbo가 현재 및 대기 중인 작업을 처리하는 방법을 지정합니다.
--continue=never이고 오류가 발생하면turbo는 모든 작업을 취소합니다.--continue=dependencies-successful이고 오류가 발생하면turbo는 종속 작업을 취소합니다. 종속성이 성공한 작업은 계속 실행됩니다.--continue=always이고 오류가 발생하면turbo는 종속성이 실패한 작업을 포함하여 모든 작업을 계속 실행합니다.--continue가 값 없이 지정되면 기본값은always입니다.
모든 경우에 turbo는 실행 중 발생한 가장 높은 종료 코드 값으로 종료됩니다.
--cwd <path>
기본값: 루트 turbo.json의 디렉토리
명령의 작업 디렉토리를 설정합니다.
--dangerously-disable-package-manager-check
Turborepo는 저장소의 lockfile을 사용하여 캐싱 동작, 패키지 그래프 등을 결정합니다. 이 때문에 Turborepo를 안정화하는 데 도움이 되도록 packageManager 필드를 사용합니다.
점진적 마이그레이션을 돕거나 packageManager 필드를 사용할 수 없는 상황에서 --dangerously-disable-package-manager-check를 사용하여 이 검사를 선택 해제하고 불안정한 lockfile이 예측할 수 없는 동작을 생성할 위험을 감수할 수 있습니다. 비활성화되면 Turborepo는 저장소에 의도된 패키지 매니저를 최선의 노력으로 검색을 시도합니다.
더 광범위한 적용을 위해 turbo.json의
설정
또는
TURBO_DANGEROUSLY_DISABLE_PACKAGE_MANAGER_CHECK
환경 변수를 사용하여 이 검사를 선택 해제할 수도 있습니다.
--dry / --dry-run
작업을 실행하는 대신 실행될 패키지와 작업에 대한 세부 정보를 표시합니다.
JSON 형식으로 출력을 얻으려면 --dry=json을 지정합니다.
작업 세부 정보에는 다음과 같은 유용한 정보가 포함됩니다(목록은 전체가 아님):
| 필드 | 설명 |
|---|---|
taskId | package-name#task-name 형식의 작업 ID |
task | 실행할 작업의 이름 |
package | 작업을 실행할 패키지 |
hash | 작업의 해시(캐싱에 사용됨) |
hashOfExternalDependencies | 전역 해시 |
command | 작업을 실행하는 데 사용되는 명령 |
inputs | 해싱을 위해 고려된 파일 입력 목록 |
outputs | 캐시된 파일 출력 목록 |
dependencies | 이 작업 이전에 실행되어야 하는 작업 |
dependents | 이 작업 이후에 실행되어야 하는 작업 |
environmentVariables | env 및 passThroughEnv에 지정된 환경 변수 목록 |
--env-mode <option>
type: string
작업의 런타임에서 사용 가능한 환경 변수를 제어합니다.
Good to know:
PATH, SHELL, SYSTEMROOT는 항상 작업에서 사용할 수 있습니다.
동일한 동작은 TURBO_ENV_MODE=strict 시스템 변수를 통해서도 설정할 수 있습니다.
strict
다음 키에 지정된 환경 변수만 작업에서 사용할 수 있습니다:
엄격 모드가 지정되거나 추론되면 구성에 관계없이 모든 작업이 strict 모드에서 실행됩니다.
loose
머신의 모든 환경 변수가 작업의 런타임에서 사용 가능하게 됩니다.
위의 strict에 나열된 키로 캐싱에 환경 변수가 고려되지 않을 때 위험할 수
있습니다. loose 모드에서는 캐시에서 잘못된 환경 변수로 패키지 버전을 복원할
가능성이 훨씬 높습니다.
--filter <string>
저장소 그래프에서 실행할 대상을 지정합니다. 여러 필터를 결합하여 고유한 대상 집합을 선택할 수 있습니다.
필터를 결합하여 패키지, 디렉토리, git 커밋의 조합을 만들 수 있습니다.
| 대상 유형 | 설명 | 예시 |
|---|---|---|
| Package | package.json의 이름으로 패키지를 선택합니다. | turbo run build --filter=ui |
| Directory | 작업을 실행할 패키지 목록을 캡처하기 위해 디렉토리를 지정합니다. 다른 필터와 함께 사용할 때는 {}로 래핑해야 합니다. | turbo run build --filter=./apps/* |
| Git commits | Git 지정자를 사용하여 소스 제어 변경 사항이 있는 패키지를 지정합니다. []로 래핑해야 합니다. | turbo run build --filter=[HEAD^1] |
Good to know:
-F는 --filter의 별칭입니다.필터링을 위한 마이크로 구문
!: 선택에서 대상을 제외합니다....패키지 사용: 대상을 기준으로 패키지 그래프의 모든 패키지를 선택합니다. 패키지 이름 앞에...를 사용하면 대상의 종속자를 선택하고, 패키지 이름 뒤에...를 사용하면 대상의 종속성을 선택합니다....Git 커밋 사용:[<from commit>]...[<to commit>]를 사용하여 범위를 선택합니다.^:...를 사용할 때 선택에서 대상을 생략합니다.
필터링에 대한 심층적인 논의와 실용적인 사용 사례는 작업 실행 페이지를 참조하세요.
작업 식별자 사용
package-name#task-name 형식으로 특정 패키지에 대한 특정 작업을 실행할 수도 있습니다.
Good to know:
이것은 작업의 종속성도 실행합니다. 종속성 없이 작업을 실행하려면 --only
플래그를 사용하세요.
고급 필터링 예제
여러 필터를 결합하여 대상을 더욱 세밀하게 조정할 수 있습니다. 여러 필터는 합집합으로 결합되며, 부정 필터는 합집합의 결과에서 패키지를 제거합니다.
--force
기존 캐시된 아티팩트를 무시하고 모든 작업을 다시 실행합니다.
Good to know:
--force는 기존 작업 캐시를 덮어씁니다.동일한 동작은 TURBO_FORCE 환경 변수를 통해서도 설정할 수 있습니다.
--framework-inference
기본값: true
작업에 대해 프레임워크 추론을 수행할지 여부를 지정합니다.
false일 때 자동 환경 변수 포함이 비활성화됩니다.
--global-deps <file glob>
해시화할 전역 파일 시스템 종속성의 glob을 지정합니다. 여러 패키지에 영향을 미치는 .env 및 루트 디렉토리의 파일에 유용합니다.
항상 고려되도록 하기 위해 turbo.json의 globalDependencies
키에 해시에 포함하려는 파일 glob을
지정하는 것을 권장합니다.
--graph <file name>
기본값: dot
이 명령은 그래프 파일을 출력할 수 있습니다: svg, png, jpg, pdf, json, html, mermaid 또는 dot.
Graphviz가 설치되지 않았거나 파일 이름이 제공되지 않으면 이 명령은 dot 그래프를 stdout에 출력합니다.
알려진 버그: 현재 특정 패키지에 해당 스크립트가 실제로 존재하지 않더라도 모든 가능한 작업 노드가 그래프에 추가됩니다. 이는 실행에는 영향을 미치지 않지만 그래프가 관련된 패키지와 작업의 수를 과대평가할 수 있습니다.
--log-order <option>
기본값: auto
로그 출력의 순서를 설정합니다.
기본적으로 turbo는 CI 환경에서 grouped 로그를, 다른 곳에서는 stream 로그를 사용합니다. 이 플래그는 터미널 UI를 사용할 때는 적용되지 않습니다.
| 옵션 | 설명 |
|---|---|
stream | 사용 가능한 즉시 출력을 표시합니다 |
grouped | 작업별로 출력을 그룹화합니다 |
auto | turbo가 자체 휴리스틱을 기반으로 결정합니다 |
--log-prefix <option>
기본값: auto
작업 실행 시 생성되는 로그 라인의 <package>:<task>: 접두사를 제어합니다.
| 옵션 | 설명 |
|---|---|
task | 로그에 <package>:<task>: 접두사를 강제로 추가합니다 |
none | 접두사 없음 |
auto | turbo가 자체 휴리스틱을 기반으로 결정합니다 |
--no-cache
사용 중단됨
이 플래그는 향후 주요 릴리스에서 제거될 예정입니다. 대신
--cache 플래그를 사용하세요.
기본값: false
작업의 결과를 캐시하지 않습니다.
--daemon 및 --no-daemon
turbo는 수행해야 할 작업을 결정하는 데 사용되는 값을 사전 계산하기 위해 백그라운드 프로세스를 실행할 수 있습니다. 이 독립 실행형 프로세스(daemon)는 최적화이며 turbo의 적절한 기능에는 필요하지 않습니다.
기본 daemon 사용은 turbo.json의 daemon 필드를 사용하여 저장소에 대해 설정됩니다. --daemon을 전달하면 turbo가 독립 실행형 프로세스를 사용해야 하며, --no-daemon은 turbo가 독립 실행형 프로세스를 사용하거나 생성하지 않도록 지시합니다.
동일한 동작은 TURBO_DAEMON=true 시스템 변수를 통해서도 설정할 수 있습니다.
--output-logs <option>
기본값: full
출력 로깅 유형을 설정하며, turbo.json에 정의된 경우 outputLogs를 재정의합니다.
| 옵션 | 설명 |
|---|---|
full | 모든 로그를 표시합니다 |
hash-only | 작업의 해시만 표시합니다 |
new-only | 캐시 미스의 로그만 표시합니다 |
errors-only | 작업 실패의 로그만 표시합니다 |
none | 모든 작업 로그를 숨깁니다 |
--only
기본값: false
실행을 지정된 작업만 포함하도록 제한합니다.
예시
다음 turbo.json이 주어졌을 때:


이 명령은 각 패키지의 test 작업만 실행합니다. build는 실행하지 않습니다.
또한 --only는 종속성을 제외하고 지정된 패키지의 작업만 실행합니다. 예를 들어, turbo run build --filter=web --only는 web 패키지의 build 스크립트만 실행합니다.
--parallel
기본값: false
작업 종속성 그래프를 무시하고 패키지 간에 명령을 병렬로 실행합니다.
--parallel 플래그는 일반적으로 종료되지 않는 장기 실행 "dev" 또는 "watch"
작업에 사용됩니다. turbo@1.7부터는 대신
persistent를 사용하여 이러한
작업을 구성하는 것을 권장합니다.
--preflight
Remote Caching이 구성된 경우에만 적용됩니다. 모든 캐시 아티팩트 및 분석 요청 전에 preflight 요청 전송을 활성화합니다. 후속 업로드 및 다운로드는 리디렉션을 따릅니다.
동일한 동작은 TURBO_PREFLIGHT=true 시스템 변수를 통해서도 설정할 수 있습니다.
--profile
성능 분석에 사용할 수 있는 Chrome Tracing 형식의 실행 추적을 생성합니다.
추적을 생성하려면 --profile과 함께 자세한 정도 플래그(-v, -vv 또는 -vvv)를 제공해야 합니다.
프로필은 Perfetto와 같은 도구에서 볼 수 있습니다.
--remote-cache-timeout
기본값: 30
Remote Cache 작업의 타임아웃을 초 단위로 설정합니다.
--remote-only
사용 중단됨
이 플래그는 향후 주요 릴리스에서 제거될 예정입니다. 대신
--cache 플래그를 사용하세요.
기본값: false
모든 작업에 대해 로컬 파일 시스템 캐시를 무시하고 Remote Cache를 사용하여 작업 출력을 읽고 캐싱합니다.
--summarize
다음을 포함하여 실행에 대한 메타데이터가 포함된 JSON 파일을 .turbo/runs에 생성합니다:
- 영향을 받은 패키지
- 실행된 작업(타이밍 및 해시 포함)
- 캐시된 아티팩트에 포함된 모든 파일
이 플래그는 다음과 같은 항목을 확인하기 위한 디버깅에 유용할 수 있습니다:
turbo가inputs및outputs에 대한 glob 구문을 해석한 방법- 캐시 미스를 발생시키기 위해 두 작업 실행 사이에 변경된 입력
- 시간이 지남에 따라 작업 타이밍이 어떻게 변경되었는지
요약 뷰어
Turborepo 네이티브 실행 요약 UI 뷰어는 없지만, 실행 요약을 웹 뷰로 보려면 커뮤니티에서 만든 https://turbo.nullvoxpopuli.com을 사용하는 것을 권장합니다.
--token
Remote Caching을 위한 bearer 토큰입니다. --team 플래그와 함께 비대화형 셸에서 실행할 때 유용합니다.
이 값은 TURBO_TOKEN 시스템 변수를 사용하여 설정할 수도 있습니다. 둘 다 있는 경우 플래그 값이 시스템 변수를 재정의합니다.
Good to know:
Vercel Remote Cache를 사용하고 Vercel에서 프로젝트를 빌드하는 경우 이 플래그를 사용할 필요가 없습니다. 이 값은 자동으로 설정됩니다.
--team
Remote Cache 팀의 슬러그입니다. --token 플래그와 함께 비대화형 셸에서 실행할 때 유용합니다.
이 값은 TURBO_TEAM 시스템 변수를 사용하여 설정할 수도 있습니다. 둘 다 있는 경우 플래그 값이 시스템 변수를 재정의합니다.
--ui
출력에 사용할 UI를 지정합니다. stream 또는 tui를 허용합니다.
--verbosity
로그 레벨을 지정하려면 --verbosity=<num> 또는 -v, -vv, -vvv를 사용합니다.
| 레벨 | 플래그 값 | 단축형 |
|---|---|---|
| Info | --verbosity=1 | -v |
| Debug | --verbosity=2 | -vv |
| Trace | --verbosity=3 | -vvv |