Skip to content

작업 공간

단일 저장소에 여러 프로젝트가 있고 모두 Volta 설정을 공유하려는 워크스페이스 환경에서 Volta를 사용하는 방법에 대한 자세한 정보입니다.

TIP

이 기능은 Volta 0.8.2에서 추가되었으며 이전 버전에서는 작동하지 않습니다.

확장 구성

package.json"volta" 섹션에서 키가 "extends"인 항목을 지정할 수 있습니다. 이 항목의 값은 "volta" 섹션도 있는 다른 JSON 파일의 경로여야 합니다. 상대 경로는 설정한 파일을 기준으로 해석됩니다. 모든 Volta 설정(예: "node" 또는 "yarn" 버전)은 "extends"가 가리키는 파일의 설정과 병합되며, 현재 파일에 우선순위가 부여됩니다. 따라서 모든 프로젝트에 단일 Node 버전을 사용하려면 루트 디렉토리에서 이러한 버전을 설정한 다음 각 프로젝트는 "extends": "../path/to/root/package.json"만 필요합니다.

예시

다음 폴더 구조와 package.json 내용이 주어졌을 때:

.
├── package.json
└── packages
    ├── cli
    │   └── package.json
    └── utils
        └── package.json
  • package.json
json
{
  "volta": {
    "node": "12.16.1",
    "yarn": "1.22.4"
  }
}
  • packages/cli/package.json
json
{
  "volta": {
    "extends": "../../package.json"
  }
}
  • packages/utils/package.json
json
{
  "volta": {
    "extends": "../../package.json"
  }
}

워크스페이스 어디에서든 node를 실행하면 Node 12.16.1을 사용하게 됩니다. 루트 package.json에서 해당 버전을 업데이트하면 각 하위 프로젝트에서 설정을 복사할 필요 없이 모든 프로젝트에서 자동으로 사용됩니다.

도구 고정

워크스페이스 내에서 volta pin을 실행하여 도구 버전을 선택할 때, Volta는 항상 찾은 가장 가까운 package.json에 이러한 설정을 추가합니다. 따라서 위의 예에서 packages/utils 하위 프로젝트에서 volta pin node@14를 실행하면 새 Node 버전이 packages/utils/package.json에 기록되고 utils 하위 프로젝트에만 적용되며 다른 프로젝트에는 적용되지 않습니다. 이를 통해 프로젝트별로 도구 버전을 쉽게 사용자 정의할 수 있습니다.

volta pin을 사용하여 루트 구성을 변경하려면 먼저 워크스페이스 루트로 cd한 다음 거기에서 volta pin을 실행하세요.

프로젝트에서 프로젝트 훅을 사용하는 경우, 하위 프로젝트의 .volta 디렉토리나 루트 디렉토리의 .volta 디렉토리에 배치할 수 있습니다. Volta는 "extends" 키가 가리키는 각 위치에서 훅을 찾아 필요한 모든 수준에서 설정을 사용자 정의할 수 있습니다.

프로젝트 로컬 바이너리

각 수준에서 훅을 찾는 것 외에도 Volta는 각 수준에서 타사 도구를 실행할 때 사용할 프로젝트 로컬 종속성을 감지하기 위해 찾습니다. "extends" 참조 각 파일을 기준으로 node_modules/.bin에서 찾으려고 시도합니다.