Node 버전 고정
Volta의 가장 강력한 기능 중 하나는 특정 도구 버전을 프로젝트에 고정하여 프로젝트에서 작업하는 모든 사람이 정확히 동일한 도구 체인을 사용하도록 보장하는 능력입니다.
버전을 고정하는 이유?
- 일관성: 팀의 모든 구성원이 동일한 버전을 사용
- 재현 가능성: 빌드 환경이 개발 환경과 일치
- 신뢰성: 예상치 못한 도구 동작으로 인한 놀라움 없음
- 온보딩: 새로운 팀 구성원이 자동으로 올바른 설정을 받음
Node.js 고정 방법
특정 Node.js 버전을 프로젝트에 고정하려면:
bash
volta pin node@16.14.2
이 명령은:
- Node.js 16.14.2를 다운로드하고 설치합니다 (아직 없는 경우)
volta
섹션으로package.json
을 업데이트합니다- 프로젝트 디렉토리에서
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를 설치하면 자동으로 고정된 버전을 사용합니다