Skip to content

구성

Volta는 JavaScript 도구 체인을 관리하기 위해 여러 구성 파일을 사용합니다. 이 참조는 사용 가능한 구성 옵션과 형식을 설명합니다.

프로젝트 구성

프로젝트별 구성은 프로젝트의 package.json 파일에 있는 volta 키 아래에 저장됩니다.

형식

json
{
  "volta": {
    "node": "16.14.2",
    "npm": "8.5.0",
    "yarn": "1.22.19",
    "extends": "../shared-volta-config.json"
  }
}

속성

속성유형설명
nodeString이 프로젝트에서 사용할 Node.js 버전
npmString이 프로젝트에서 사용할 npm 버전
yarnString이 프로젝트에서 사용할 Yarn 버전
pnpmString이 프로젝트에서 사용할 pnpm 버전
extendsString공유 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.jsonvolta 섹션과 동일하지만 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는 다음 순서로 소스를 확인합니다:

  1. 명령행 인수 (예: volta run --node 14)
  2. volta 섹션을 포함하는 가장 가까운 package.json의 프로젝트 구성
  3. 사용자의 기본 도구 버전 (volta install로 설정)
  4. 번들 버전 (예: 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 섹션이 필요하지 않습니다
}