구성
Volta는 JavaScript 도구 체인을 관리하기 위해 여러 구성 파일을 사용합니다. 이 참조는 사용 가능한 구성 옵션과 형식을 설명합니다.
프로젝트 구성
프로젝트별 구성은 프로젝트의 package.json
파일에 있는 volta
키 아래에 저장됩니다.
형식
json
{
"volta": {
"node": "16.14.2",
"npm": "8.5.0",
"yarn": "1.22.19",
"extends": "../shared-volta-config.json"
}
}
속성
속성 | 유형 | 설명 |
---|---|---|
node | String | 이 프로젝트에서 사용할 Node.js 버전 |
npm | String | 이 프로젝트에서 사용할 npm 버전 |
yarn | String | 이 프로젝트에서 사용할 Yarn 버전 |
pnpm | String | 이 프로젝트에서 사용할 pnpm 버전 |
extends | String | 공유 Volta 구성 파일의 경로 |
버전 형식
volta
구성의 버전 문자열은 다음 형식을 사용할 수 있습니다:
- 정확한 버전:
16.14.2
- 주 버전만:
16
- 주 버전과 부 버전:
16.14
- 버전 범위 (npm semver):
^16.14.0
- 태그:
latest
,lts
공유 프로젝트 구성
여러 프로젝트가 확장할 수 있는 공유 Volta 구성을 만들 수 있습니다. 이는 프로젝트 간에 도구 버전을 표준화하고자 하는 조직에 유용합니다.
형식
json
{
"node": "16.14.2",
"npm": "8.5.0"
}
형식은 package.json
의 volta
섹션과 동일하지만 JSON 파일의 루트 레벨에 있습니다.
사용자 구성
Volta의 사용자 구성은 Volta 홈 디렉토리에 저장됩니다:
- Unix:
~/.volta/
- Windows:
%LOCALAPPDATA%\Volta\
도구 저장소
설치된 도구는 구조화된 디렉토리에 저장됩니다:
- Node.js:
~/.volta/tools/image/node/
- 패키지 매니저:
~/.volta/tools/image/yarn/
,~/.volta/tools/image/npm/
- 패키지:
~/.volta/tools/user/packages/
훅 디렉토리
사용자 정의 훅은 ~/.volta/hooks/
에 저장됩니다. 자세한 내용은 고급 기능 섹션을 참조하세요.
환경 변수
환경 변수는 Volta 동작을 구성하는 또 다른 방법을 제공합니다. 전체 참조는 환경 변수 페이지를 참조하세요.
구성 우선순위
어떤 도구 버전을 사용할지 해결할 때 Volta는 다음 순서로 소스를 확인합니다:
- 명령행 인수 (예:
volta run --node 14
) volta
섹션을 포함하는 가장 가까운package.json
의 프로젝트 구성- 사용자의 기본 도구 버전 (
volta install
로 설정) - 번들 버전 (예: Node.js와 번들된 npm)
예제
일반적인 프로젝트 구성
json
{
"name": "my-project",
"version": "1.0.0",
"volta": {
"node": "16.14.2",
"npm": "8.5.0"
},
"dependencies": {
// ...
}
}
확장 구성
json
// shared-config.json
{
"node": "16.14.2",
"yarn": "1.22.19"
}
// package.json
{
"name": "my-project",
"version": "1.0.0",
"volta": {
"extends": "./shared-config.json",
"npm": "8.5.0" // 확장 구성의 npm 버전을 재정의
}
}
워크스페이스 구성
워크스페이스 기반 프로젝트의 경우 루트 package.json
구성이 모든 워크스페이스 패키지에 적용됩니다:
json
// 루트 package.json
{
"name": "workspace-root",
"volta": {
"node": "16.14.2",
"yarn": "1.22.19"
},
"workspaces": [
"packages/*"
]
}
// packages/app/package.json - Node.js 16.14.2와 Yarn 1.22.19를 사용합니다
{
"name": "app",
"version": "1.0.0",
// 여기에 volta 섹션이 필요하지 않습니다
}