다중 언어 지원
Turborepo는 JavaScript 생태계의 규칙을 기반으로 실행할 스크립트와 작업을 찾지만, 이러한 스크립트가 무엇을 하는지는 신경 쓰지 않습니다. JavaScript 워크스페이스에서 패키지를 지정하는 지침을 따르면 Turborepo에 다른 언어나 도구 체인을 추가할 수 있습니다.
예를 들어, 리포지토리의 ./cli 디렉토리에 Rust 프로젝트가 있을 수 있습니다. 이 디렉토리를 JavaScript 패키지 매니저의 워크스페이스에 패키지로 추가하려면 워크스페이스 정의에 디렉토리를 추가하세요:
그런 다음 디렉토리에 package.json을 추가합니다:
이제 turbo build를 사용하면 ./cli/package.json의 "build" 스크립트가 turbo가 실행하는 작업에 포함됩니다.
빌드 아티팩트 캐싱
빌드의 출력이 turbo.json의 outputs 키로 캐시되고 있는지 확인하세요. cargo로 컴파일되는 Rust CLI의 경우 릴리스 빌드가 target/release 디렉토리에 생성되며 다음을 사용하여 캐시할 수 있습니다:


종속성 관계 생성
디렉토리가 이제 패키지 매니저의 워크스페이스의 일부이므로 JavaScript 패키지와 정확히 동일한 방식으로 종속성을 만들 수 있습니다.
예를 들어, 위의 rust-cli "패키지"가 web 애플리케이션 전에 빌드되도록 하려면 web 애플리케이션의 종속성에 설치하세요:
다음과 같은 build 작업이 있는 turbo.json이 주어지면:


turbo build는 먼저 Rust CLI에 대한 아티팩트를 생성한 다음 web 애플리케이션을 빌드합니다.