Turborepo 2.3

Tuesday, November 14th, 2024
Chris Olszewski
Name
Chris Olszewski
Nicholas Yang
Name
Nicholas Yang
X
@nicholaslyang
Anthony Shew
Name
Anthony Shew
X
@anthonysheww

Turborepo 2.3은 여러 인간공학적 개선 사항을 소개합니다:

npx @turbo/codemod migrate를 실행하여 지금 업데이트하거나 npx create-turbo@latest로 시작하세요.

Boundaries RFC

Monorepo는 더 빠른 반복 속도와 놀라운 유연성을 제공하지만 새로운 도전 과제도 도입합니다:

이는 monorepo에서 구축할 때 핵심 질문의 몇 가지 예일 뿐입니다: Workspace의 구조적 무결성을 어떻게 전달하고 시행합니까?

이 게시물을 게시할 당시 Boundaries RFC는 초기 초안일 뿐입니다. 아래에 설명된 구현은 변경될 수 있습니다. 최신 정보는 RFC 자체를 참조하세요.

Boundaries RFC는 이 문제에 대한 우리의 초기 제안입니다. 현재 접근 방식에서는 한 줄의 코드로 Boundaries를 점진적으로 채택할 수 있기를 원합니다:

Turborepo logo
turbo.json
{
  "boundaries": true
}

또한 사용자 정의 Boundaries로 도메인, 관심사, 컨텍스트 및 기타 유용한 메타데이터를 표시할 수 있는 태그 시스템을 만들고자 합니다.

Turborepo logo
apps/ui/turbo.json
{
  "extends": ["//"],
  "boundaries": {
    "tags": ["library", "ui", "frontend", "beta"],
    "allowDependencyOn": ["library", "frontend"],
    "denyDependencyFrom": ["backend", "stable"]
  }
}

또한 플래그로 기존 진단을 허용 목록에 추가할 수 있도록 계획하고 있습니다:

Terminal
turbo boundaries --exclude-errors

이렇게 하면 새 코드에 대한 Boundaries를 시행하고 기존 문제를 점진적으로 수정할 수 있습니다.

Boundaries RFC에 대한 여러분의 아이디어와 피드백을 기대합니다.

패키지 작업 단축키

이제 정규화된 작업 식별자를 사용하여 작업을 실행할 수 있습니다:

Terminal
turbo run web#build

이는 --filter를 사용하는 동등한 명령(turbo run build --filter=web)보다 편리하며 여러 작업을 타겟팅하려는 경우 더 정확합니다:

Terminal
turbo run web#build docs#lint

문서에서 자세히 알아보세요.

간소화된 캐시 제어

이전에는 --remote-only--no-cache 플래그가 출력 아티팩트의 소스 및 캐싱을 관리하는 데 사용되었습니다. 그러나 이들이 혼란을 야기할 수 있으며 로컬 및 Remote Cache에 대한 읽기 및 쓰기 제어에 격차가 있음을 확인했습니다.

이를 개선하기 위해 이러한 플래그를 통합하고 더 많은 기능을 제공하는 새로운 --cache 플래그를 도입했습니다.

Terminal
turbo run build --cache=local:rw,remote:r

localremote를 사용하여 turbo 호출의 읽기 및 쓰기 동작을 제어할 수 있습니다. 문서에서 자세히 알아보세요.

turbo query에 대한 지속적인 개선

2.2에서 패키지 및 작업 그래프에 대한 Turborepo의 지식을 사용하여 저장소를 검사하기 위해 구축된 기능인 turbo query를 도입했습니다. 더욱 강력한 쿼리를 제공하기 위해 이 기능을 추가로 반복했습니다:

커뮤니티

Turborepo 2.2 출시 이후 훌륭한 채택과 커뮤니티 성장을 보았습니다:

Turborepo는 핵심 팀을 포함한 모든 기여자들의 결합된 작업의 결과입니다: Anthony, Chris, Nicholas, 그리고 Tom.

Turborepo를 여러분의 빌드 도구로 만들어 주시는 지속적인 지원, 피드백 및 협력에 감사드립니다.