Turborepo 1.5

Monday, September 19th, 2022
Matt Pocock
Name
Matt Pocock
X
@mattpocockuk
Greg Soltis
Name
Greg Soltis
X
@gsoltis
Nathan Hammond
Name
Nathan Hammond
Tom Knickman
Name
Tom Knickman
X
@tknickman
Anthony Shew
Name
Anthony Shew
X
@anthonysheww
Jared Palmer
Name
Jared Palmer
X
@jaredpalmer
Mehul Kar
Name
Mehul Kar
X
@mehulkar
Chris Olszewski
Name
Chris Olszewski

Turborepo 1.5는 문서 및 개발자 경험의 큰 도약이며 turbo prune에 대한 주요 개선 사항을 제공합니다:

npm install turbo@latest를 실행하여 오늘 업데이트하세요.

Monorepo Handbook

모노레포를 처음 설정하는 것은 종종 많은 새로운 개념을 탐색하는 것을 의미합니다. 워크스페이스, 패키지 설치, 코드 공유 및 종속성 관리 등을 이해해야 합니다.

이는 종종 처음부터 모노레포를 설정하려는 사람들이 다양한 문서 사이트에서 정보를 모아야 함을 의미했습니다. 먼저 pnpm, 그 다음 tsup, 다시 changesets, 그리고 마지막으로 Turborepo로 돌아왔습니다.

우리는 Monorepo Handbook로 이 격차를 메우고자 합니다. 모노레포로 배포를 성공시키는 데 필요한 모든 도구를 통합하는 방법에 대한 가이드를 만들었습니다:

run 생략

이제 turbo <task>를 사용하여 Turborepo CLI로 작업을 실행할 수 있습니다.

Terminal
- turbo run build
+ turbo build
 
 
- turbo run lint build test
+ turbo lint build test

작업 이름이 기본 제공 turbo 하위 명령과 충돌하는 경우 대신 하위 명령을 실행합니다. 즉, prune, run 또는 login과 같은 작업 이름은 사용하지 않아야 합니다. 이들은 기본 제공 하위 명령이기 때문입니다.

turbo run <task>는 계속 작동하며 더 이상 사용하지 않을 계획은 없습니다.

pnpm 및 yarn 2+에서 이제 Prune 지원

turbo prune이 이제 pnpm, yarn 및 yarn 2+를 지원한다는 것을 발표하게 되어 기쁩니다.

turbo prune을 사용하여 주어진 대상 애플리케이션과 그 종속성에 필요한 올바른 종속성이 포함된 전용 lockfile과 함께 모노레포의 프루닝된 하위 집합을 만들 수 있습니다. 이는 Docker 이미지 내에서 Turborepo를 효율적으로 사용하는 데 특히 유용합니다.

새로운 핸드북의 일부로 turbo prune을 사용하여 Docker 이미지 빌드에 대한 섹션도 추가했습니다.

자세한 내용은 prune에 대한 이전 블로그를 확인하세요.

turbo.json의 환경 변수

turbo.json에 두 개의 새로운 키인 envglobalEnv를 도입했습니다. 이들은 환경 변수를 작업과 별도로 구성할 수 있게 합니다:

Turborepo logo
turbo.json
{
  "globalDependencies": [
-   "$DATABASE_URL"
  ],
+ "globalEnv": [
+   "DATABASE_URL"
+ ],
  "pipeline": {
    "build": {
      "dependsOn": [
-       "$BUILD_ENV"
      ],
+     "env": [
+       "BUILD_ENV"
+     ]
    }
  }
}

globalEnvenv를 사용하면 $ 접두사 없이 환경 변수 목록을 지정할 수 있습니다. 이는 구성 파일을 훨씬 더 읽기 쉽게 만듭니다. 자세한 내용은 업데이트된 문서를 참조하세요.

이전 구문에서 마이그레이션하는 데 도움이 되도록 codemod를 준비했습니다. npx @turbo/codemod migrate-env-var-dependencies를 실행할 수 있습니다.

이 작업은 1.4.0에서 추가한 자동 환경 변수 감지를 기반으로 합니다.

package.json 해싱 변경

각 워크스페이스의 package.json 파일은 이제 해당 워크스페이스의 작업에 대한 입력으로 항상 간주됩니다. 이는 package.json에서 작업의 정의를 변경하면 이전 정의의 캐시를 무효화하려는 것을 의미합니다.

이는 루트의 package.json에도 적용됩니다. 루트 package.json의 변경은 루트 워크스페이스의 작업을 무효화합니다.

이는 Turborepo의 캐시를 조금 더 스마트하게 만들고 작업 정의가 변경될 때 문제가 발생할 가능성을 줄입니다.

커뮤니티

8월에 Turborepo v1.4를 출시한 이후 놀라운 채택률과 커뮤니티 성장을 보았습니다:

Turborepo는 핵심 팀을 포함한 모든 기여자들의 결합된 작업의 결과입니다.

이 릴리스는 다음 분들의 기여로 제공되었습니다: @7flash, @afady, @alexander-young, @atilafassina, @bguedes-moz, @bobaaaaa, @brunojppb, @chris-olszewski, @DoctorJohn, @erj826, @futantan, @gsoltis, @HosseinAgha, @ivov, @jaredpalmer, @joelhooks, @knownasnaffy, @laurentlucian, @leerob, @MarceloAlves, @mattpocock, @mauricekleine, @mehulkar, @Misikir, @nareshbhatia, @nathanhammond, @pakaponk, @PhentomPT, @renovate, @ruisaraiva19, @samuelhorn, @shemayas, @shuding, @t-i-0414, @theurgi, @tknickman, @yanmao-cc 등 더 많은 분들!

Turborepo를 여러분의 선택한 빌드 도구로 만들기 위한 지속적인 지원, 피드백 및 협력에 감사드립니다.