작업 공간
단일 저장소에 여러 프로젝트가 있고 모두 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
{
"volta": {
"node": "12.16.1",
"yarn": "1.22.4"
}
}
packages/cli/package.json
{
"volta": {
"extends": "../../package.json"
}
}
packages/utils/package.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
에서 찾으려고 시도합니다.