Search

[node.js] nvm 으로 node 버전관리 하기

타입
개발
태그
nodejs
개발환경
상태
Published
생성일
2023/01/22 06:47
최종 편집 일시
2023/07/18 01:46
2 more properties

1. node.js 버전관리의 필요성

협업을 할 때는 물론이고, 개인프로젝트 시에도 필요에 따라 프로젝트마다 node 버전을 변경해야할 때가 있다.
글로벌 버전 세팅은 하나의 버전 밖에 안 되므로 버전을 관리해주는 툴을 사용해야 하는데, node 진영에서의 version manager 로 nvm 이 있다.
nvm 의 필요성을 정리하자면 다음과 같다.
1.
node 버전을 여러 개 설치하여 손 쉽게 버전이동 가능
2.
글로벌 버전 뿐만 아니라 프로젝트 마다 로컬 node 버전을 다르게 세팅 가능

2. nvm 설치

2023.01.22 기준으로 설치한 방법이니 추후에 달라질 수 도 있습니다. 정확한 설치 방법은 공식문서를 따라가세요

설치

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.0v17.9.1 로 바뀌었다.
하지만 글로벌 버전은 v18.13.0 이 그대로 유지돼있다.
참고
nvm
nvm-sh