Node.js 버전 관리
fnm 은 강력한 버전 관리 기능을 제공하여 여러 Node.js 버전 간에 쉽게 전환할 수 있습니다.
기본 작업
설치된 버전 보기
bash
fnm list출력 예제:
* v20.10.0 default
v18.19.0
v16.20.2*는 현재 사용 중인 버전을 나타냅니다default는 기본 버전을 나타냅니다
현재 버전 보기
bash
fnm current버전 전환
bash
# 특정 버전으로 전환
fnm use 20
# 특정 정확한 버전으로 전환
fnm use 20.10.0
# 버전이 설치되지 않은 경우 자동 설치 후 전환
fnm use 18 --install-if-missing기본 버전
기본 버전 설정
bash
fnm default 20기본 버전은 다음과 같습니다:
- 새 터미널 세션이 시작될 때 사용되는 버전
- 버전 파일이 없을 때 사용되는 버전
기본 버전 보기
bash
fnm default버전 별칭
별칭을 사용하면 버전에 대해 기억하기 쉬운 이름을 설정할 수 있습니다.
별칭 생성
bash
# 버전의 별칭 설정
fnm alias 20 default
fnm alias 18 legacy
fnm alias 16 old별칭 사용
bash
# 별칭을 통해 버전 전환
fnm use default
fnm use legacy별칭 삭제
bash
fnm unalias legacy자동 버전 전환
fnm 은 프로젝트 디렉토리에 따라 Node.js 버전을 자동으로 전환할 수 있습니다.
자동 전환 활성화
Shell 구성에 --use-on-cd 를 추가합니다:
bash
eval "$(fnm env --use-on-cd)"버전 파일 생성
프로젝트 루트에 .node-version 또는 .nvmrc 파일을 생성합니다:
bash
# .node-version 사용 (권장)
echo "20" > .node-version
# 또는 .nvmrc 사용 (nvm 과 호환)
echo "v18.17.0" > .nvmrc버전 파일 형식
.node-version 은 다음 형식을 지원합니다:
20 # 주요 버전, 최신 20.x.x 사용
20.10 # 마이너 버전, 최신 20.10.x 사용
20.10.0 # 정확한 버전
lts/iron # LTS 버전 이름버전 파일 구문 분석 전략
fnm 은 두 가지 버전 파일 구문 분석 전략을 지원합니다:
bash
# local (기본값) - 현재 디렉토리만 검색
fnm env --version-file-strategy=local
# recursive - 상위 디렉토리 재귀적으로 검색
fnm env --version-file-strategy=recursivepackage.json engines 지원
fnm 은 package.json 의 engines.node 필드를 읽을 수 있습니다:
json
{
"engines": {
"node": ">=18.0.0"
}
}기본적으로 활성화되어 있으며 환경 변수를 통해 비활성화할 수 있습니다:
bash
export FNM_RESOLVE_ENGINES=false버전 관리 모범 사례
1. 프로젝트 수준 버전 잠금
각 프로젝트에 .node-version 파일을 생성합니다:
bash
cd my-project
echo "20" > .node-version
fnm install
fnm use2. 팀 협업
.node-version 을 Git 에 추가합니다:
bash
git add .node-version
git commit -m "chore: add .node-version"3. CI/CD 구성
CI/CD 환경에서 fnm 을 사용합니다:
yaml
# GitHub Actions
- name: fnm 설치
run: curl -fsSL https://fnm.vercel.app/install | bash
- name: Node.js 설치
run: fnm install && fnm use4. 다중 버전 개발
bash
# 여러 버전 설치
fnm install 20
fnm install 18
fnm install 16
# 쉽게 전환할 수 있도록 별칭 설정
fnm alias 20 current
fnm alias 18 legacy
fnm alias 16 old
# 다른 프로젝트에서 다른 버전 사용
cd project-new && fnm use current
cd project-old && fnm use legacy버전 제거
bash
# 특정 버전 제거
fnm uninstall 16.20.2
# 별칭을 통해 제거 (버전 및 모든 관련 별칭 삭제)
fnm uninstall old일반적인 문제
버전 전환 후 node 명령어가 업데이트되지 않음
Shell 구성이 올바른지 확인합니다:
bash
# node 경로 확인
which node
# fnm 디렉토리를 가리켜야 함
# ~/.fnm/node-versions/.../bin/node자동 전환이 작동하지 않음
- Shell 구성에
--use-on-cd가 추가되었는지 확인 - 버전 파일이 존재하는지 확인
- Shell 구성을 다시 로드
버전 파일 우선순위
fnm 은 다음 순서로 버전을 검색합니다:
- 명령줄에 지정된 버전
.node-version파일.nvmrc파일package.jsonengines.node- 기본 버전
관련 링크
- Node.js 설치 - 설치 가이드
- 명령어 참조 - 모든 명령어 상세 정보
- 다운로드 관리 - 다운로드 관련 기능