Turborepo 1.8
Turborepo 1.8은 turbo의 워크스페이스 이해를 개선하여 코드베이스에 더 나은 유연성과 더 많은 제어를 제공합니다.
- 워크스페이스 구성: 이제 워크스페이스에
turbo.json구성 파일을 추가하여 저장소의 루트 구성을 재정의할 수 있습니다. - 자동 워크스페이스 범위 지정: 이제 전역
turbo가 현재 워크스페이스를 자동으로 추론하여 해당 워크스페이스의 작업만 실행합니다. - 더 쉬운 마이그레이션:
npx @turbo/codemod migrate를 사용하여turbo의 새 버전으로 자동 마이그레이션합니다.
npx @turbo/codemod migrate를 실행하여 오늘 업데이트하세요.
워크스페이스 구성
워크스페이스 디렉토리에서 이제 turbo.json을 추가하여 다음을 수행할 수 있습니다:
- 해당 워크스페이스에 특정한 작업 추가
- 작업에 대한 구성 재정의
이를 통해 팀은 전역 구성에서 벗어나 워크스페이스의 작업에 대한 세밀한 제어로 이동하여 모노레포의 프로젝트 소유권을 확장할 수 있습니다.
예를 들어, 모노레포에 Next.js 앱과 SvelteKit 앱이 있고 Turborepo를 사용하여 build 작업의 출력을 캐시하려고 한다고 상상해보세요. Next.js build 스크립트는 .next 디렉토리를 생성하는 반면 SvelteKit은 .svelte-kit 디렉토리를 생성합니다. 루트 outputs에 두 빌드 디렉토리를 모두 추가하는 대신 워크스페이스에서 outputs 키를 정의할 수 있습니다:






워크스페이스 구성의 extends 키를 사용하면 워크스페이스 소유자가 루트 turbo.json의 장점을 사용하고 앱을 다르게 만드는 부분을 사용자 정의할 수 있습니다("//" 기호는 루트에서 실행할 작업 정의에 익숙한 경우 익숙할 것입니다).
선언된 키는 해당 키가 존재하는 경우 루트의 키를 대체하여 루트 구성에 정의된 내용을 재정의합니다. 선언되지 않은 키는 루트 구성에서 상속됩니다.
위의 예에서 outputs는 두 앱 모두에 대해 사용자 정의되는 반면 dependsOn은 루트 turbo.json에 의해 구성되고 "^codegen"으로 유지됩니다.
자동 워크스페이스 범위 지정
Turborepo v1.7에서 turbo는 전역으로 설치할 수 있게 되어 코드베이스의 어디에서나 작업을 실행할 수 있는 권한을 제공했습니다. 그러나 turbo는 여전히 루트에서 작업을 실행하여 실행하려고 의도하지 않았을 수 있는 다른 워크스페이스의 작업을 실행했습니다.
1.8에서 turbo는 현재 작업 중인 워크스페이스를 자동으로 감지하고 --filter 구문을 생성하여 해당 워크스페이스로 작업 범위를 지정합니다.
예를 들어, 현재 디렉토리가 apps/admin이고 turbo build 명령을 사용하는 경우 turbo는 후드 아래에서 turbo build --filter=admin을 실행하여 작업 중인 워크스페이스에 집중합니다.
더 쉬운 마이그레이션
Turborepo 버전을 업그레이드할 때 올바른 순서로 개별 codemod를 수동으로 실행할 필요가 없습니다. @turbo/codemod는 이제 저장소를 지정된 버전(기본적으로 latest)의 turbo로 업그레이드하고 필요한 모든 codemod를 실행하는 간단한 migrate 명령을 제공합니다.
지금 npx @turbo/codemod migrate로 사용해 보세요.
커뮤니티
Turborepo v1.7을 출시한 이후 놀라운 채택률과 커뮤니티 성장을 보았습니다:
- 19.6k+ GitHub Stars
- 주간 NPM 다운로드 987k
- Vercel의 Remote Caching을 통해 42년의 컴퓨팅 시간 절약
Turborepo는 핵심 팀을 포함한 모든 기여자들의 결합된 작업의 결과입니다.
Turborepo를 여러분의 선택한 빌드 도구로 만들기 위한 지속적인 지원, 피드백 및 협력에 감사드립니다.