NVM으로 Node 버전 관리하기
NVM은 Node.js Version Manager의 약자로, Node.js의 버전 관리자 이다.
기존에 설치된 Node 버전을 바꿔서 사용해야 할 일이 생겨서 NVM으로 Node 버전을 관리하는 방법에 대해 알아보게 되었다.
- 사용 OS:
macOS
- 패키지 관리자:
brew
- 터미널:
zsh
NVM 설치
brew install nvm
NVM 설정
설치를 했다면 위와 같은 화면을 볼 수 있다. 안내된대로 차근차근 따라하면 된다.
- NVM 폴더 생성
mkdir ~/.nvm
.zshrc
파일 수정
.zshrc
파일은 Vim이나 VSCode로 편집할 수 있는데 나는 VSCode로 열어서 수정해주었다.
# Vim으로 편집
$ vim ~/.zshrc
# VSCode로 편집
$ code ~/.zshrc
# .zshrc 파일에 아래 코드를 붙여넣어준다.
...
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
파일을 저장한 뒤, source
명령어를 통해 환경 변수를 적용시켜주고 Terminal을 재시작해준다.
$ source ~/.zshrc
# NVM 설치 확인
nvm --version
nvm -v
Node 버전 리스트
설치 가능한 Node 버전들을 확인할 수 있다.
nvm ls-remote
Node 설치
보통은 최신 버전보다는 LTS 버전(Long Term Support) 또는 프로젝트에서 사용해야하는 특정 버전을 사용한다.
*LTS 버전은 2년간 해당 버전에 대한 취약점 패치, 개선 사항에 대한 패치를 보증하는 버전으로 다른 버전들 보다 비교적 안정적으로 사용할 수 있다.
반대로 최신 버전은 아직 개발이 진행중인 버전으로, 해당 버전에 존재하는 기능이 패치를 통해 사라지거나 변경되어 새로 코드를 작성해야할 가능성이 존재한다.
# 최신 버전 설치하기
nvm install node
# 최신 LTS(안정) 버전 설치하기
nvm install --lts
# 원하는 버전 설치하기
nvm install 13.12.0
# 설치된 버전 확인하기
nvm ls
버전 변경
NVM을 사용하여 여러 버전의 Node를 설치했다면 아래에 명령어를 사용하여, 사용하고자 하는 Node를 선택할 수 있다.
nvm use 13.12.0
nvm ls
명령어를 통해 Node 버전이 잘 변경되었는지 확인한다. 잘 변경되었다면 아래와 같이 출력된다.
v8.9.0
v12.16.1
-> v13.12.0
system
버전 삭제
불필요한 Node 버전은 아래 명령어를 통해 삭제할 수 있다.
nvm uninstall 8.9.0
프로젝트별 Node 버전 관리하기
위의 방법은 Local에 여러 버전의 Node를 설치해서 사용하는 것이었는데, 각 프로젝트별로 Node버전을 달리 설정 해줄 수도 있다.
.nvmrc 생성
각 프로젝트별로 Node 버전을 관리하기 위해서는 .nvmrc
파일을 생성해줘야 한다.
프로젝트의 Root 폴더에 .nvmrc
파일을 생성하고 아래와 같이 수정한다.
12.16.1
.nvmrc 적용
이렇게 설정한 Node 버전을 사용하기 위해서는 .nvmrc
파일이 존재하는 폴더에서 아래 명령어를 실행한다.
nvm use
명령어 실행 시 프로젝트에서 실행하고자 하는 Node버전이 Local에 존재하는지의 유무에 따라 다르게 출력된다.
.nvmrc
파일에 설정된 Node 버전이 Local 환경에 존재하는 경우
Found '/projects/.nvmrc' with version <12.16.1>
Now using node v12.16.1 (npm v6.13.4)
- Local 환경에 존재하지 않는 경우
Found '/projects/.nvmrc' with version <8.9.0>
N/A: version "8.9.0 -> N/A" is not yet installed.
You need to run "nvm install 8.9.0" to install it before using it.
그럼 안내된 명령어에 따라 설치를 진행한 후, 설치가 완료되면 아래와 같은 화면을 확인할 수 있다.
...
Checksums matched!
Now using node v8.9.0 (npm v5.5.1)
M1 이슈
사용하려는 프로젝트가 Node 14버전까지만 대응이 돼서 Node 14버전을 설치하려했는데 위의 방법과 같이 설치하니, 터미널이 폭발하려고 한다. 알아보니까 M1칩에서는 14버전이 제대로 설치되지 않는다고 한다.
무작정 설치하지 말고, 로제타를 이용해서 설치해주어야 한다고 한다.
# 상단바
Finder - 이동 - 응용프로그램 - iTerm(우클릭) - 정보가져오기 >> Rosetta를 사용하여 열기 체크
로제타로 실행시킨 터미널에서 Node.js 14버전을 설치해주면 완료!
출처