Turborepo 1.1
12월 중순 Turborepo v1.0을 출시한 이후 놀라운 도입률을 보였습니다:
- 5.5k+ GitHub Stars
- 주간 npm 다운로드 70k+
- 65+ OSS 기여자
- Vercel, AWS, PayPal, Twilio, Contentful, Miro, Framer, Discord.js, Rocket.chat, Astro.build에서 프로덕션 사용 중
- Turborepo Community Discord 회원 585명+

Turborepo v1.1에서는 빌드 성능과 캐싱을 더욱 개선하고 다음 기능을 제공합니다:
- 자동 마이그레이션: 업그레이드를 지원하는 공식 멱등성 마이그레이션 스크립트입니다.
turbo.json지원: Turborepo 구성이 이제 자체 파일에 저장됩니다.- 더 빠른 패키지 매니저 감지: Turborepo가 이제 루트
package.json의packageManager키를 준수합니다. - 환경 변수 종속성: 환경 변수가 전역 및 작업별 캐싱에 미치는 영향을 정의합니다.
- Yarn v2+ 부분 지원:
nodeLinker: "node-modules"를 사용하는 yarn v2+ 지원입니다.
npm install turbo@latest를 실행하여 오늘 업데이트하세요. turbo를 실행한 후 @turbo/codemod를 사용하여 v1.1에 대한 자동 마이그레이션을 실행하는 방법에 대한 지침이 표시됩니다.
자동 마이그레이션
Turborepo는 이제 기능이 더 이상 사용되지 않거나 향후 사용 중단될 때 Turborepo 코드베이스를 업그레이드하는 데 도움이 되는 멱등성 코드 변환 및 자동 마이그레이션 스크립트(일명 "codemod")를 제공합니다.
Codemod는 프로그래밍 방식으로 코드베이스에서 실행되는 변환입니다. 이를 통해 모든 파일을 수동으로 검토하고 편집하지 않고도 코드에 대량의 변경 사항을 자동으로 적용하여 시간을 절약할 수 있습니다.
사용법
transform- 변환 이름입니다. 문서에서 사용 가능한 변환 확인.path- 변환할 파일 또는 디렉터리입니다.--dry- 드라이 런을 수행하며 코드가 편집되지 않습니다.--print- 비교를 위해 변경된 출력을 인쇄합니다.
특정 변환에 대한 자세한 내용은 새로운 Codemod 문서를 확인하세요.
turbo.json 지원
Turborepo 구성이 이제 모노레포 루트의 turbo.json 파일에 정의됩니다. 이는 코드 편집기에서 Turborepo 구성으로 빠르게 이동하려는 사용자를 위해 package.json에 turbo 키를 포함하는 것보다 개선된 방식입니다.
package.json의 현재 구성에서 자동으로 마이그레이션하려면 새 브랜치를 체크아웃하고 모노레포 루트로 이동한 다음 다음 codemod를 실행하세요:
이 변환에 대한 자세한 내용은 문서를 확인하세요.
더 빠른 패키지 매니저 감지
Turborepo는 이제 더 빠른 패키지 매니저 감지를 위해 최근 설정된 package.json의 packageManager 필드를 지원합니다. 이전에는 turbo가 특정 파일을 확인하여 이 정보를 추론했습니다. 이 필드를 자동으로 설정하려면 새 브랜치를 체크아웃하고 모노레포 루트로 이동한 다음 다음을 실행하세요:
이 변환에 대한 자세한 내용은 문서를 확인하세요.
환경 변수 종속성
빌드 시 환경 변수를 인라인하는 도구(예: Next.js 또는 Create React App)와 함께 turbo를 사용하는 경우, 잘못된 환경 변수로 캐시된 아티팩트를 배포하지 않도록 turbo에 이를 알리는 것이 중요합니다.
이제 환경 변수 값과 파일 내용을 기반으로 turbo의 캐시 지문(일명 해싱) 동작을 제어할 수 있습니다:
$접두사가 붙은pipeline정의의dependsOn에 환경 변수를 포함하면 작업별 또는 패키지-작업별로 캐시 지문에 영향을 줍니다.$접두사가 붙은globalDependencies목록에 환경 변수를 포함하면 모든 작업의 캐시 지문에 영향을 줍니다.globalDependencies에 파일 또는 파일 glob을 포함하면 모든 작업의 캐시 지문에 영향을 줍니다.


참고: 대부분의 모노레포에서는 공유 패키지에서 환경 변수를 자주 사용하지 않고 주로 애플리케이션에서 사용합니다. 따라서 더 높은 캐시 적중률을 얻으려면 환경 변수가 사용/인라인되는 앱별 작업에만 환경 변수를 포함해야 합니다.
자세한 내용은 캐싱 및 해싱 문서를 읽어보세요.
Yarn v2/v3 부분 지원
Yarn v1, npm 및 pnpm 패키지 매니저 외에도 Turborepo는 이제 .yarnrc.yml에 nodeLinker: "node-modules" 설정을 사용하는 Yarn v2+를 지원합니다. 이 키는 Yarn v2+에게 Yarn v1의 node_modules 설치 동작을 모방하도록 지시합니다. Yarn v2+ Plug'n'Play(일명 "PnP")는 현재 지원되지 않습니다.
다음은 무엇입니까?
출시 이후 Turborepo는 원활한 점진적 도입/마이그레이션과 CI/CD 속도 향상에 중점을 두었습니다. 우리는 이 두 가지 가치에 계속 전념하지만 이제는 로컬 개발 및 관찰 가능성을 위한 Turborepo의 일상적인 인체공학 개선에도 중점을 둘 것입니다. 우리는 이 다음 장에 대해 정말 기대하고 있으며 곧 더 많은 세부 정보를 공유할 것입니다.
인재 채용 중!
Vercel의 Turborepo 팀이 채용 중입니다! Turborepo를 더욱 개선하는 데 도움을 줄 풀타임 Senior Full Stack Software Engineers 및 Senior DevOps/Infrastructure Engineers를 구체적으로 찾고 있습니다.