Turborepo 2.0

Tuesday, June 4, 2024
Chris Olszewski
Name
Chris Olszewski
Nicholas Yang
Name
Nicholas Yang
X
@nicholaslyang

Turborepo 2.0은 JavaScript 및 TypeScript 저장소의 개발자 경험을 개선합니다. 주요 기능은 다음과 같습니다:

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

업데이트 지침은 업그레이드 가이드를 참조하세요. 주요 변경 사항은 아래에 나열되어 있습니다.

새로운 터미널 UI

Turborepo 1.13에서 개선된 터미널 UI가 개발 속도를 어떻게 향상시킬 수 있는지 알아보기 위해 실험적 인터페이스를 출시했습니다. RFC 프로세스를 통해 여러분의 피드백을 바탕으로 커뮤니티와 함께 개선된 로컬 경험을 설계할 수 있었습니다. 참여해 주신 분들께 감사드립니다.

오늘, 새로운 UI를 안정 버전으로 출시하며, 이와 함께 많은 요청을 받았던 기능들을 활성화합니다.

로그 명확성 개선

2.0 이전에는 turbo가 라이브러리 및 애플리케이션 작업 중에 로그를 스트림으로 출력했습니다. 이는 때때로 압도적일 수 있었는데, 섞인 로그들로 인해 특정 작업에서 무슨 일이 일어나고 있는지 이해하기 어려웠습니다.

이번 UI 반복에서는 화살표 키를 사용하여 개별 작업을 선택하고 한 번에 하나씩 로그를 검사할 수 있어, 집중하고 싶은 로그를 더 쉽게 읽을 수 있습니다.

Good to know: 

이전 버전의 turbo에서 사용하던 스트림 로그 보기는 --log-order 플래그를 사용하여 로컬 개발에서 여전히 사용할 수 있습니다. 이 옵션을 사용하면 작업이 상호작용하지 않으며 일부 도구가 예기치 않게 터미널을 지울 수 있습니다.

상호작용 작업

많은 도구들이 중요한 기능을 위해 스크립트와 상호작용할 수 있도록 허용합니다. 하지만 이전 버전의 Turborepo에서는 스크립트가 turbo 내부에 갇혀 있어 상호작용할 수 없었습니다.

이제 개별 작업의 셸에 들어가서 인터페이스에 직접 입력하여 stdin을 통해 스크립트에 입력을 전달할 수 있습니다. 이를 통해 Jest 또는 Vitest로 특정 테스트 스위트 실행, Drizzle 또는 Prisma로 데이터베이스 마이그레이션 처리 등의 워크플로우를 사용할 수 있습니다.

작업을 상호작용으로 표시하려면 정의에 "persistent": true를 추가하세요:

Turborepo logo
./turbo.json
{
  "tasks": {
    "dev": {
      "cache": false,
      "persistent": true
    }
  }
}

UI에서 작업을 선택한 상태에서 Enter 키를 사용하여 작업의 셸에 진입하고 CTRL+Z로 종료할 수 있습니다.

지속적 및 상호작용 작업에 대해 자세히 알아보려면 문서를 방문하세요.

Watch Mode

Turborepo의 다중 작업 동시 실행 기능은 더 빠른 피드백 루프를 제공하여 신속한 배포를 지원합니다. 로컬에서 작업할 때 Turborepo의 병렬화를 최대한 활용하려면, 변경 사항이 있을 때마다 코드를 다시 실행할 수 있는 "감시자" 기능이 도구에 필요합니다. 안타깝게도 많은 일반 도구들이 이 기능을 제공하지 않으며, 대부분의 도구가 monorepo를 인식하지 못해 저장소의 다른 스크립트에 의존하는 스크립트에 문제가 발생합니다.

오늘, 모든 도구에 이 기능을 제공하기 위해 Watch Mode를 출시합니다:

Terminal
turbo watch dev lint test

turbo watch를 사용하면 Turborepo가 소스 코드 변경 시 작업을 다시 실행합니다. 작업은 turbo run과 마찬가지로 turbo.json의 의존성 그래프 및 구성을 사용하여 실행됩니다.

문서에서 Watch Mode에 대해 자세히 알아보세요.

완전히 새로운 문서

이번 릴리스와 함께 이전 버전의 강점을 기반으로 한 개선된 문서를 출판합니다. 여러분의 피드백을 반영하여 문서에는 다음이 포함됩니다:

Turborepo 문서를 방문하세요.

주요 변경 사항

2.0으로 업데이트하는 방법은 업그레이드 가이드를 참조하세요.

구성

turbo.json의 주요 변경 사항은 npx @turbo/codemod migrate를 사용하여 업데이트할 수 있습니다.

정확성

기타

커뮤니티

Turborepo의 지속적인 성장과 채택을 보게 되어 기쁩니다:

Turborepo는 핵심 팀을 포함한 모든 기여자들의 결합된 작업의 결과입니다: Anthony, Chris, Greg, Mehul, Mitch, Nicholas, 그리고 Tom.

Turborepo를 여러분의 빌드 도구로 만들어 주시는 지속적인 지원, 피드백 및 협력에 감사드립니다. 아직 참여하지 않으셨다면 GitHubDiscord에서 대화에 참여하세요.