Turborepo 1.7
Turborepo 1.7은 작업에 더 많은 명확성을 제공하여 개발자 경험을 개선하는 데 중점을 둡니다:
- 장기 실행 작업에 대한 개선된 지원:
persistent: true를 사용하여 종료되지 않는 작업을 표시하여turbo가 종속성이 있는 경우 경고할 수 있습니다. - 출력에 대한 더 나은 명확성: 이제 항상 작업 출력을 선언해야 하므로 작업이 캐시할 내용에 대한 투명성이 향상됩니다.
- 전역 설치 가능: 한 번 설치하고 어디서나 사용하세요. Turborepo는 이제 전역으로 설치할 수 있으며 저장소 루트뿐만 아니라 모든 디렉토리에서 실행할 수 있습니다.
- "오류만" 출력 모드: 작업이 실패할 때만 표시하도록 출력 로그를 조용하게 만듭니다.
npm install turbo@latest를 실행하거나 전역으로 설치 NEW하고 set-default-outputs codemod를 실행하여 오늘 업데이트하세요.
자신있게 장기 실행 작업 예약
실행되지 않는 작업을 초래할 수 있는 잘못된 구성을 방지하기 위해 이제 persistent: true 구성 옵션을 사용하여 자체적으로 종료되지 않는 작업(dev 스크립트 등)에 대해 Turborepo에 알릴 수 있습니다. 이 구성이 작업에 설정되면 Turborepo는 다른 작업이 이 작업에 종속될 수 없도록 보장합니다. 이는 dev 작업이나 --watch 플래그가 있는 테스트 러너에 유용합니다.


이전에는 작업 B가 persistent 작업 A에 종속된 경우 작업 A가 종료되지 않았기 때문에 작업 B는 실행되지 않았습니다. 작업 A를 persistent로 선언하면 Turborepo가 이 오류 시나리오가 발생하지 않도록 방지합니다.
이 릴리스 이전에는 persistent 작업에 대해 turbo run <task> --parallel 사용을 권장해 왔습니다. --parallel을 사용하면 turbo가 종속성 그래프를 무시하고 모든 작업을 한 번에 실행합니다.
--parallel이 유용한 탈출구를 제공했지만 사용자는 작업이 무엇인지 선언하는 대신 Turborepo에 작업을 어떻게 실행할지 알려야 했습니다.
전체 토폴로지 종속성 그래프를 버리는 대신 Turborepo가 종속성 그래프를 유지하면서 persistent: true로 종료되지 않는 프로세스에 종속되지 않도록 보장하는 것이 훨씬 더 정확합니다.
전역 turbo
turbo를 전역으로 설치하면 프로젝트의 어디에서나 Turborepo 작업을 실행할 수 있습니다. 이를 위해 다음을 사용하세요:
turbo는 이제 모든 프로젝트에서 작동합니다. 로컬 turbo 버전을 찾기 위해 turbo는 현재 디렉토리에서 항상 위쪽으로 몇 가지 단계를 거칩니다:
- 가장 가까운 turbo.json을 찾습니다.
- 찾지 못하면
workspaces속성이 있는 첫 번째package.json을 찾습니다. - 찾지 못하면 첫 번째
package.json을 찾습니다.
전역으로 설치된 turbo 버전은 로컬로 설치된 turbo 버전이 존재하지 않거나 찾을 수 없는 경우에만 사용됩니다.

turbo --version 및 turbo bin은 작업을 실행할 turbo 사본의 버전과 바이너리 위치를 각각 표시합니다.
또한 -vv 또는 --verbosity=2로 실행하면 로컬 또는 전역 turbo가 사용되는지 항상 표시됩니다.
명확성 향상을 위해 outputs 선언
이전에는 작업에 대한 outputs 키를 지정하지 않으면 Turborepo가 자동으로 dist/ 및 build/ 디렉토리의 모든 파일을 캐시하려고 시도했습니다.
이는 특정 프레임워크의 build 작업에는 잘 작동했지만 이 암시적 동작은 모든 작업에 적용되므로 잘 확장되지 않았습니다. Turborepo를 사용하는 많은 개발자, 팀, 프로젝트 및 코드베이스에서 dist/ 및 build/ 디렉토리를 자동으로 캐시하는 가정이 사용자에게 문제를 일으키고 있다는 것을 발견했습니다.
버전 1.7에서는 이 동작이 제거되었으며 이제 turborepo에 캐시할 내용을 명시적으로 알려야 합니다.


1.7 미만 버전의 Turborepo에서 기본 캐시 출력에 의존하고 있었다면 @turbo/codemod set-default-outputs codemod를 실행하여 동일한 동작을 얻을 수 있습니다:
또한 아무것도 캐시하지 않는 것이 이제 기본 동작이므로 더 이상 outputs: []를 지정할 필요가 없습니다. codemod는 작업에서 이 구성도 제거합니다.
더 조용한 로그를 위한 "오류만" 출력 모드
오류에 대한 가시성을 제공하기 위해 커뮤니티 멤버 @dobesv가 작업 실행의 모든 로그 대신 오류만 표시하는 솔루션을 기여했습니다. 파이프라인을 디버깅하는 동안 --output-logs=errors-only를 사용하여 신호 대 잡음비를 높게 유지하여 파이프라인의 성공적인 실행을 보장하는 데 집중할 수 있습니다.
이는 구성 옵션 또는 CLI 플래그로 사용할 수 있습니다
커뮤니티
Turborepo v1.6을 출시하고 Turbopack과 병합한 이후 놀라운 채택률과 커뮤니티 성장을 보았습니다:
- 18.7k+ GitHub Stars
- 주간 NPM 다운로드 750k
- Vercel의 Remote Caching을 통해 30년의 컴퓨팅 시간 절약
Turborepo는 핵심 팀을 포함한 모든 기여자들의 결합된 작업의 결과입니다.
Turborepo를 여러분의 선택한 빌드 도구로 만들기 위한 지속적인 지원, 피드백 및 협력에 감사드립니다.