Turborepo 2.5
Turborepo 2.5는 저장소를 향상시키는 여러 개선 사항을 포함합니다:
- Sidecar 작업:
with를 사용하여 지속적인 작업이 항상 함께 실행되도록 보장 --continue에 대한 유연성: 의존성이 성공한 경우에만 작업 계속 실행turbo.jsonc: 구성 파일에 직접 주석 작성- Bun용
prune: 이제 Bun 저장소에서turbo prune사용 가능 $TURBO_ROOT$:turbo.json에서 Workspace 루트 참조- OpenAPI 뷰어: 자체 호스팅 Remote Cache를 위한 사람이 읽을 수 있는 OpenAPI 사양
npx @turbo/codemod migrate를 실행하여 지금 업그레이드하거나 npx create-turbo@latest로 시작하세요.
Sidecar 작업
경우에 따라 두 개의 장기 실행 작업이 항상 동시에 실행되도록 보장하려고 합니다. 예를 들어, monorepo의 다른 애플리케이션에 요청하는 웹 애플리케이션이 있을 수 있습니다. 백엔드 API 애플리케이션이 요청을 처리할 수 없으므로 웹 애플리케이션만 실행하는 것은 유용하지 않을 수 있습니다.
dependsOn을 사용하여 이 관계를 만들려고 시도했을 수 있지만 장기 실행 작업에 의존하는 것이 허용되지 않는다는 것을 빠르게 발견했습니다. 장기 실행 작업은 절대 종료되지 않으므로 의존 작업이 절대 실행되지 않습니다. 이는 해당 리소스를 사용할 수 있도록 --filter를 신중하게 작성해야 하며 저장소의 모든 사람이 이를 사용하도록 해야 한다는 것을 의미했습니다.
대신 with 키를 도입하여 의존 장기 실행 작업이 런타임에 의존하는 장기 실행 작업과 항상 함께 실행되도록 보장할 수 있습니다.


이 패키지 구성을 사용하면 web 애플리케이션의 dev 작업이 시작될 때마다 package#task 마이크로신택스를 사용하여 api의 start 작업도 실행됩니다.
--continue 동작에 대한 개선된 제어
기본적으로 Turborepo는 실패한 작업을 만나면 작업 실행을 중지합니다. --continue 플래그를 사용하여 이 동작을 변경할 수 있으며, 하나 이상의 작업이 실패한 경우에도 Turborepo가 작업을 계속 실행하도록 지시합니다.
--continue 플래그가 유용하지만 의존성이 실패한 작업을 실행하면 더 많은 실패로 이어질 때가 있습니다. 이러한 상황을 위해 이번 릴리스에서 --continue 플래그에 새로운 값을 추가했습니다: --continue=dependencies-successful.
이 값을 사용하면 작업의 모든 의존성이 성공해야 의존 작업이 실행됩니다.
Turborepo 핵심 팀은 이 기능을 기여해 준 @jenseng에게 감사드립니다.
Turborepo 구성 파일에 주석 추가
이제 구성 파일에 JSONC (turbo.jsonc)를 사용하여 유용한 주석을 추가할 수 있습니다.
Bun 저장소용 pruned monorepo
turbo prune은 대상 패키지에 대한 부분 monorepo를 생성하며 특히 monorepo에서 경량 Docker 이미지 생성에 유용합니다. 이 명령은 이전 버전의 Turborepo에서 pnpm, npm 및 Yarn 저장소에 사용할 수 있었습니다.
이번 릴리스에서 turbo prune은 이제 읽고 분석할 수 있는 텍스트 기반 lockfile을 도입한 Bun v1.2+에서 사용할 수 있습니다.
turbo prune에 대해 자세히 알아보려면 문서를 방문하세요.
Turborepo 핵심 팀은 이 기능을 기여해 준 @camero2734에게 감사드립니다.
$TURBO_ROOT$ 마이크로신택스로 workspace 루트 참조
경우에 따라 monorepo에서 패키지 경계를 벗어나야 할 수 있습니다. 이는 최신 패키지 관리자 workspace에 맞지 않는 도구 또는 이상적인 조건에서 벗어나는 점진적 마이그레이션 워크플로우와 같은 여러 제약으로 인한 것일 수 있습니다.
과거에는 글로브가 패키지의 루트에 고정되어 있기 때문에 workspace 루트로 이동하는 경로를 turbo.json에 작성해야 했습니다:


이 패턴은 작동하지만 경우에 따라 불일치로 이어질 수 있습니다:
- 일부 패키지는
../가 필요하고 다른 패키지는../../가 필요할 수 있습니다 - 개발자가 패키지를 다른 위치로 이동하여 경로가 올바르지 않을 수 있습니다
대신 이제 $TURBO_ROOT$ 마이크로신택스를 사용할 수 있습니다:


이제 이 파일 글로브는 항상 workspace의 루트에서 시작하도록 보장됩니다.
자체 호스팅용 OpenAPI 사양 뷰어
Turborepo는 Remote Caching 프로토콜에 대한 공개 사양을 갖춘 오픈 소스를 자랑스럽게 생각합니다. Vercel Remote Cache는 무료로 사용할 수 있는 관리형 옵션이지만, OpenAPI 사양을 통해 커뮤니티가 자체 Remote Caching 구현을 만들 수 있습니다.
우리는 한동안 Remote Cache 사양을 JSON으로 웹에 게시해 왔으며 최근 https://turborepo.com/docs/openapi에 사람 친화적인 버전의 사양을 추가했습니다.
자세한 내용은 Remote Caching 문서를 방문하세요.
기타 변경 사항
감사의 말 및 커뮤니티
Turborepo는 핵심 팀을 포함한 모든 기여자들의 결합된 작업의 결과입니다: Anthony, Chris, Dimitri, Nicholas, 그리고 Tom.
Turborepo를 여러분의 빌드 도구로 만들어 주시는 지속적인 지원, 피드백 및 협력에 감사드립니다. 참여 방법을 알아보려면 커뮤니티 페이지를 방문하세요.
또한 이번 Turborepo 릴리스에 기여해 주신 모든 분들께 감사드립니다: @beaussan, @bohongu, @camero2734, @cprussin, @dinglindong, @jenseng, @jimmycathy, @kevincatty, @mm-webx, @ognevny, @pi0, @pudongair, @rootdiae, @shinjith-dev, @sicarius97, @ssshashank, @Tigatok, @todaymoon, @Tyoneb, @victorlagerfors, @vinayaksodar, @wmjae, @x-N0, 그리고 @xiaobei0715.