개발 기술/개발 이야기

nvm으로 node버전 관리하기(mac)

by GicoMomg (Lux) 2022. 2. 15.

🧐 프로젝트마다 요하는 node버전이 다르며, 여러 개의 프로젝트를 진행할 경우 노드 버전을 변경해줘야한다. 하지만 조금 더 편하게 노드 버전을 변경할 순 없을까? 이번시간에는 nvm에 대해 알아보았다!

1. nvm이란?

  • nvm은 node version manager로, 여러 노드 버전을 관리하는 스크립트이다.
  • nvm명령어을 이용해 다양한 버전의 노드를 빠르게 설치하고 변경할 수 있다.
  • 유사한 노드 버전 매니저로는 n이 존재한다.

2. nvm 사용법

😉 nvm을 사용하기 위해서는 설치가 필요하다. mac에서는 어떻게 설치하고 적용하는지 알아보자!

1) brew로 설치하기

  • brew 명령어를 사용해 nvm을 설치해준다.
  • 설치후 brew update를 사용해 brew 패키지를 업데이트 해주자.
brew install nvm 
brew update

2) nvm 디렉토리 만들기

  • nvm 관련 정보를 담는 폴더를 생생해준다.
mkdir ~/.nvm

3) bash_profile 혹은 zshrc에 환경변수 추가하기

(1) macOS Catalina 버전 이상인 경우

  • zshrc에 nvm에 관한 환경변수를 지정해줘야 한다.
  • vi 명령어를 사용해 zshrc 파일 편집으로 들어가고, i를 입력해 insert모드로 들어간다.
vi ~/.zshrc

(2) macOS Catalina 아래 버전인 경우

  • bash_profile에 nvm에 관한 환경변수를 지정해줘야 한다.
  • vi 명령어를 사용해 bash_profile 파일 편집으로 들어가고, i를 입력해 insert모드로 들어간다.
vi ~/.bash_profile

  • [공통] bash_profile 혹은 zshrc폴더의 제일 하단에 아래 코드를 입력하고 :wq!를 해준다.
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

4) 추가한 환경변수 적용하기

  • source는 스크립트 파일의 수정된 값을 적용하는 명령어이다.
  • source 명령어를 사용해 환경변수를 추가한 bash_profile 혹은 zshrc파일을 실행시킨다.
source ~/.bash_profile

혹은 

source ~/.zshrc

5) nvm 설치 확인하기

  • nvm을 터미널에 입력했을 때 nvm에 대한 설명이 나오면 성공이다.
nvm


6) nvm으로 node 버전 설치하기

(1) 노드 버전 설치하기

  • install 명령어를 사용해 특정 노드 버전을 설치할 수 있다.
nvm install v12.22.10

  • 만약 lts 버전(서버환경에서 장기적으로 안정적 지원을 제공하는 버전)를 설치하고 싶다면, 아래 명령어를 사용하자.
nvm install --lts

(2) 설치된 노드 목록 보기

  • 만약 설치된 node 버전을 보고 싶다면 nvm ls를 해보자.
nvm ls


(3) 노드 버전 변경 - 현재 버전 변경하기

만약 현재 사용할 노드버전이 lts라면 nvm use 명령어를 사용하면 된다.

nvm use v12.22.10


(4) 노드 버전 변경 - 기본 버전 변경하기

🙄 어? 그런데 새로운 터미널을 열어서 node -v 명령어로 노드 버전을 확인해보니 16버전이라고 뜨네?


  • 그 이유는 현재 노드 기본 버전이 v16이기 때문이다.


  • 만약 v12.22.10을 기본 버전으로 설정하고 싶다면 nvm alias default 명령어를 사용해주면 된다.
nvm alias default v12.22.10

  • 새로운 터미널을 열어, node -v을 해보니 노드 기본 버전이 변경된 걸 볼 수 있다 🙂



💡 지금까지 node version manager인 nvm에 대해 알아보았는데, 자세한 설명은 이 링크를 참고한는 걸 권한다

반응형

'개발 기술 > 개발 이야기' 카테고리의 다른 글

Promise.allSettled?  (0) 2022.03.13
NVM 버전 설정 쉽게 하기(with. nvmrc)  (0) 2022.02.20
Mock Service Worker (feat. vue)  (0) 2022.02.03
indexedDB에 대해 알아보자!  (0) 2022.01.24
JS 클린코드 <변수편>  (0) 2022.01.15

댓글