Turborepo 2.1

Tuesday, August 27th, 2024
Tom Knickman
Name
Tom Knickman
X
@tknickman
Anthony Shew
Name
Anthony Shew
X
@anthonysheww
Chris Olszewski
Name
Chris Olszewski
Nicholas Yang
Name
Nicholas Yang
X
@nicholaslyang
Dimitri Mitropoulos
Name
Dimitri Mitropoulos

Turborepo 2.1은 저장소와의 통합을 개선합니다. 주요 기능은 다음과 같습니다:

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

--affected로 변경된 패키지에 대한 작업 실행

Turborepo의 Remote Caching은 모든 머신에서 단일 캐시를 공유하므로 동일한 작업을 두 번 수행할 필요가 없습니다. 하지만 변경되지 않은 패키지를 완전히 무시할 수 있다면 어떨까요?

이제 turbo run과 함께 --affected 플래그를 사용하여 현재 브랜치의 최신 커밋과 저장소의 기본 브랜치(보통 main 또는 master) 사이의 변경 사항이 있는 패키지를 자동으로 대상으로 지정할 수 있습니다. turboPackage Graph를 사용하여 직접 변경 사항이 있거나 내부 의존성에 변경 사항이 있는 패키지에 대해 작업을 실행합니다.

Terminal
turbo run lint test --affected

다음과 같은 상황에서 이 플래그를 사용하고 싶을 것입니다:

자세한 내용은 문서를 방문하세요.

저장소 탐색 도구

저장소가 성장하고 변경됨에 따라 찾고 있는 것을 빠르게 찾기 어려울 수 있습니다. 저장소를 더 빠르고 쉽게 이해할 수 있도록 작업, 패키지 및 관계를 신속하게 표시하고자 합니다.

turbo run

turbo run(작업 인수 없이)을 사용하여 저장소에서 사용 가능한 작업 목록을 가져옵니다. 이 명령은 필터자동 패키지 스코핑과도 작동합니다.

Terminal
# 저장소의 모든 작업 나열
turbo run
 
# 특정 패키지의 작업 나열
turbo run --filter=@repo/ui
 
# 자동 패키지 스코핑 사용
cd packages/ui && turbo run

자세한 내용은 문서를 방문하세요.

turbo ls

turbo ls를 사용하여 위치와 함께 저장소의 모든 패키지 목록을 가져오거나, 특정 패키지로 필터링하여 내부 의존성 및 작업 요약을 확인하세요. turbo ls--filter--affected도 지원하므로 변경된 패키지 목록을 쉽게 수집할 수 있습니다.

Terminal
# 저장소의 모든 패키지 나열
turbo ls
 
# `web` 패키지의 의존성 및 작업 나열
turbo ls web
 
## 영향을 받은 패키지 나열
turbo ls --affected

turbo ls는 특정 형식으로 결과를 반환하는 데 사용할 수 있는 실험적 --output 플래그를 지원합니다. 예를 들어, --output=json을 사용하여 다른 도구 또는 사용자 정의 스크립트에 대한 입력을 더 쉽게 만들 수 있습니다. 이전에 변경된 패키지 목록을 검색하기 위해서만 turbo build --dry=json을 사용했다면 turbo ls --affected --output=json을 시도해 보세요. 자세한 내용은 문서를 참조하고 출력 형식에 대한 피드백은 turbo ls RFC에 남겨주세요.

자세한 내용은 문서를 방문하세요.

터미널 UI 개선

Turborepo 2.0에서 로그의 명확성을 개선하고 로컬 개발에서 상호작용 작업을 허용하기 위해 새로운 터미널 UI를 출시했습니다. 여러분의 피드백을 듣고 이 UI를 다듬는 것을 우선시하여 2.0 패치 및 이번 2.1 릴리스에서 개선 사항을 출시했습니다:

훌륭한 터미널 UI 경험을 구축하는 것은 독특한 도전 과제이며, 우리는 이 경험을 계속 반복하고 있습니다. monorepo를 위한 훌륭한 UI를 만드는 작업을 계속하는 동안 지속적인 피드백에 감사드립니다.

확장된 구성 옵션

이번 릴리스에서는 저장소의 기본값에 대해 더 많은 유연성을 제공하기 위해 turbo.json에 더 많은 키를 추가합니다. 이번 릴리스의 새로운 키는 다음과 같습니다:

Turborepo logo
turbo.json
{
  "envMode": "loose",
  "daemon": false,
  "cacheDir": "./my-custom-directory/"
}

많은 또는 모든 turbo 호출에서 이러한 구성에 대한 플래그 동등물을 사용하여 다음과 같은 명령으로 코드베이스를 어지럽혔을 수 있습니다:

Terminal
turbo run build --env-mode=loose --no-daemon --cache-dir=./my-custom-directory

이제 Turborepo의 기존 구성 모델을 사용하여 turbo.json의 중앙 집중식 구성으로 이를 단순화할 수 있습니다:

사용 가능한 옵션 및 구성에 대해 자세히 알아보려면 문서를 방문하세요.

기타 개선 사항

전체 변경 로그는 vercel/turborepo에서 확인하세요.

커뮤니티

Turborepo 2.0 출시 이후 놀라운 채택과 커뮤니티 성장을 보았습니다:

Turborepo는 핵심 팀을 포함한 모든 기여자들의 결합된 작업의 결과입니다.

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