Turborepo 1.10

Thursday, June 1st, 2023
Nathan Hammond
Name
Nathan Hammond
Tom Knickman
Name
Tom Knickman
X
@tknickman
Anthony Shew
Name
Anthony Shew
X
@anthonysheww
Mehul Kar
Name
Mehul Kar
X
@mehulkar

Turborepo 1.10은 로컬 개발 경험을 개선하는 새로운 기능을 도입합니다:

다음 명령으로 오늘 업데이트하세요

Terminal
npx @turbo/codemod migrate

코드 제너레이터

turbo-gen

Turborepo 제너레이터를 사용하면 예측 가능하고 구조화된 방식으로 저장소에 새 코드를 추가할 수 있습니다. 이전에는 코드를 직접 복사하고 새 작업 공간에 종속성을 수동으로 추가해야 했습니다. 제너레이터를 사용하면 새 작업 공간을 생성하고 저장소에 통합하는 프로세스가 자동화됩니다.

처음부터 빈 작업 공간을 생성하거나, 기존 작업 공간을 복사하거나, 더 많은 제어를 위해 커스텀 제너레이터를 생성할 수도 있습니다. 커스텀 제너레이터는 JavaScript 생태계에서 사용되는 일반적인 템플릿 정의 전략인 Plop 구성을 활용합니다.

커스텀 제너레이터는 작업 공간보다 더 세분화된 코드 세트를 스캐폴딩하는 데에도 사용할 수 있습니다. 다음과 같은 작업을 크게 가속화할 수 있습니다:

다음을 실행하여 첫 번째 제너레이터를 시작하세요:

Terminal
turbo gen

자세한 내용은 문서를 확인하세요.

개선된 환경 변수 입력

.env 파일 지원

.env 파일은 환경 변수를 로드하는 데 일반적으로 사용됩니다. 이는 turbo로 실행할 때 문제를 일으킬 수 있습니다. 이러한 변수는 보이지 않을 수 있으며 작업의 해시에 쉽게 포함되지 않기 때문입니다. 이 문제는 로컬에서 작업할 때 의도하지 않은 캐시 히트를 유발할 수 있습니다.

Turborepo는 이제 .env 파일에 대한 자동 지원으로 이를 훨씬 쉽게 만듭니다.

Turborepo가 해시에 이러한 변수를 포함하도록 하려면 dotEnv 키를 사용하세요. 예를 들어, 다음은 Next.js 애플리케이션의 구성입니다:

Turborepo logo
./turbo.json
{
  "$schema": "https://turborepo.com/schema.json",
  "globalDotEnv": [".env"],
  "pipeline": {
    "build": {
      "dotEnv": [
        ".env.production.local",
        ".env.local",
        ".env.production",
        ".env"
      ]
    },
    "dev": {
      "dotEnv": [
        ".env.development.local",
        ".env.local",
        ".env.development",
        ".env"
      ]
    },
    "test": {
      "dotEnv": [".env.test.local", ".env.test", ".env"]
    }
  }
}

이 기능은 시스템 환경 변수를 처리하지 않습니다. 개발 외부에서 .env 파일을 사용하지 않는 경우 환경 변수가 해시에 포함되도록 env 또는 globalEnv에 여전히 열거되어 있는지 확인하세요.

자세한 내용은 문서를 확인하세요.

환경 변수 와일드카드

대규모 애플리케이션의 turbo.json에는 많은 환경 변수가 포함될 수 있습니다. 이로 인해 구성을 관리하고 유지하기 어려울 수 있습니다.

와일드카드를 사용하면 이제 해시에 포함할 변수의 패턴을 지정할 수 있습니다.

Turborepo logo
./turbo.json
{
  "$schema": "https://turborepo.com/schema.json",
  "pipeline": {
    "build": {
      "env": ["ACME_*"]
    }
  }
}

자세한 내용은 문서를 확인하세요.

환경 모드

Turborepo 환경 모드가 실험 모드에서 벗어나 일반 사용이 가능해졌습니다.

기본적으로 그리고 turbo run--env-mode=loose로 호출될 때, 머신의 모든 환경 변수가 모든 Turborepo 작업에 제공됩니다. 이는 최대 호환성을 보장하지만 작업이 turbo.json에 지정되지 않은 환경 변수에 암시적으로 액세스할 수 있는 일부 위험을 감수합니다.

새로운 엄격 모드에서는 turbo--env-mode=strict로 호출될 때 중요한 시스템 환경 변수turbo.json 내부에 열거된 환경 변수만 작업에 제공됩니다.

자세한 내용은 문서를 확인하세요.

커뮤니티

Turborepo v1.9 출시 이후 놀라운 채택률과 커뮤니티 성장을 보았습니다:

Turborepo는 핵심 팀을 포함한 모든 기여자들의 노력이 결합된 결과입니다:

Turborepo를 여러분의 빌드 도구로 선택하기 위해 지속적인 지원, 피드백, 협업에 감사드립니다.