1. node.js 버전관리의 필요성
협업을 할 때는 물론이고, 개인프로젝트 시에도 필요에 따라 프로젝트마다 node 버전을 변경해야할 때가 있다.
nvm 의 필요성을 정리하자면 다음과 같다.
1.
node 버전을 여러 개 설치하여 손 쉽게 버전이동 가능
2.
글로벌 버전 뿐만 아니라 프로젝트 마다 로컬 node 버전을 다르게 세팅 가능
2. nvm 설치
설치
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
Bash
복사
nvm 환경변수 등록
nvm command 를 인식해주도록 환경변수에 등록해줍니다.
설치 시 맨 아래에 나온 export 스크립트를 복사한 다음 붙여넣기 해줍니다.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Bash
복사
터미널 창을 새로 열고 nvm 설치 확인
nvm -v
Bash
복사
설치가 잘 된 모습
3. nvm 사용
버전 목록 확인
nvm ls
현재 로컬에 설치된 node 목록을 확인
nvm ls-remote
nvm 으로 다운받을 수 있는 모든 node 버전 출력
$ nvm ls-remote
v0.1.14
v0.1.15
v0.1.16
v0.1.17
v0.1.18
v0.1.19
v0.1.20
...
v18.13.0 (Latest LTS: Hydrogen)
v19.0.0
v19.0.1
v19.1.0
v19.2.0
v19.3.0
v19.4.0
Bash
복사
nvm ls-remote --lts
lts (long term support) 버전만 출력
$ nvm ls-remote --lts
v4.2.0 (LTS: Argon)
v4.2.1 (LTS: Argon)
v4.2.2 (LTS: Argon)
v4.2.3 (LTS: Argon)
v4.2.4 (LTS: Argon)
....
v16.19.0 (Latest LTS: Gallium)
v18.12.0 (LTS: Hydrogen)
v18.12.1 (LTS: Hydrogen)
v18.13.0 (Latest LTS: Hydrogen)
Bash
복사
버전 설치 및 사용
nvm install {특정버전}
버전명 규칙
버전명은 보통 . 을 기준으로 세 개의 수로 이뤄진다.
v A.B.C 에서
A : Major 버전 ( 기존 버전과 호환되지 않을 수 있음 )
B : Minor 버전 ( 기존 버전과 호환되면서 새로운 기능 추가 )
C : Patch 버전 ( 기존 버전과 호환되면서 버그 수정 )
nvm install 17 처럼 Major 버전만 입력할 시 해당 Major 버전에서 최신버전으로 설치된다.
nvm install 17 을 하면 17 에서 최신 버전인 v17.9.1 이 설치됨
23년 1월 기준 최신 LTS 인 18.13.0 을 설치했다.
nvm use {특정버전}
사용할 node 버전을 지정한다.
nvm ls 로 확인해보니 현재 사용 중인 v18.13.0 을 가리키고 있다.
프로젝트 마다 node 버전을 다르게 사용하기
프로젝트 루트에 .nvmrc 파일을 생성한 뒤, 특정 node 버전 (ex. v17.9.1 ) 을 작성해놓으면 된다.
그 후 nvm use 를 입력하면 프로젝트에 해당 node 버전이 적용된다.
현재 글로벌 node 는 v18.13.0 으로 설정돼있다.
프로젝트 루트에 .nvmrc 를 생성하고 nvm use 를 하면 해당 프로젝트에서는 .nvmrc 에 명시된 node 버전으로 바뀐다.
프로젝트 내부에서는 버전이 v18.13.0 → v17.9.1 로 바뀌었다.
하지만 글로벌 버전은 v18.13.0 이 그대로 유지돼있다.
참고