Skip to content

Node 버전 고정

Volta의 가장 강력한 기능 중 하나는 특정 도구 버전을 프로젝트에 고정하여 프로젝트에서 작업하는 모든 사람이 정확히 동일한 도구 체인을 사용하도록 보장하는 능력입니다.

버전을 고정하는 이유?

  • 일관성: 팀의 모든 구성원이 동일한 버전을 사용
  • 재현 가능성: 빌드 환경이 개발 환경과 일치
  • 신뢰성: 예상치 못한 도구 동작으로 인한 놀라움 없음
  • 온보딩: 새로운 팀 구성원이 자동으로 올바른 설정을 받음

Node.js 고정 방법

특정 Node.js 버전을 프로젝트에 고정하려면:

bash
volta pin node@16.14.2

이 명령은:

  1. Node.js 16.14.2를 다운로드하고 설치합니다 (아직 없는 경우)
  2. volta 섹션으로 package.json을 업데이트합니다
  3. 프로젝트 디렉토리에서 node를 실행할 때 Node.js 16.14.2를 사용하도록 합니다

이제 package.json에 다음이 포함됩니다:

json
{
  "volta": {
    "node": "16.14.2"
  }
}

패키지 매니저 고정

패키지 매니저의 특정 버전도 고정할 수 있습니다:

bash
volta pin npm@8.5.0
volta pin yarn@1.22.18
volta pin pnpm@7.0.0

이렇게 하면 모든 사람이 동일한 패키지 매니저 버전을 사용하게 되어 락 파일 불일치 및 기타 버전 문제를 방지합니다.

npm을 고정한 후 package.json은 다음과 같이 보입니다:

json
{
  "volta": {
    "node": "16.14.2",
    "npm": "8.5.0"
  }
}

고정된 도구 사용

도구가 고정되면 추가 명령이 필요하지 않습니다. 프로젝트 디렉토리로 이동하고 평소대로 명령을 실행하기만 하면 됩니다:

bash
# 이것들은 프로젝트의 고정된 버전을 사용합니다
node --version
npm --version

Volta는 고정된 버전이 있는 디렉토리에 있을 때를 자동으로 감지하고 기본 도구 대신 해당 버전을 사용합니다.

고정된 버전 업데이트

고정된 버전을 업데이트하려면:

bash
volta pin node@latest
volta pin npm@latest

또는 새 버전을 지정하세요:

bash
volta pin node@18

모범 사례

언제 고정해야 할까요

  • 프로덕션 애플리케이션: 항상 Node와 패키지 매니저를 고정하세요
  • 라이브러리/패키지: 코드가 특정 Node 기능에 의존하는 경우 Node를 고정하세요
  • 도구/유틸리티: 기능에 필요한 최소 Node 버전을 고정하세요

버전 선택

  • 애플리케이션의 경우 Node의 LTS(장기 지원) 버전을 선택하세요
  • 라이브러리의 경우 지원하고자 하는 가장 오래된 Node 버전을 사용하세요
  • 보안 수정 사항의 이익을 얻기 위해 정기적으로 버전을 업데이트하세요

CI/CD 통합

CI/CD 파이프라인이 고정된 버전을 존중하도록 보장하세요:

  • GitHub 워크플로우에서 Volta GitHub Action을 사용하세요
  • 다른 CI 시스템의 경우 Volta를 설치하면 자동으로 고정된 버전을 사용합니다