[WEB] NVM을 이용한 node 버전 관리 (Window, Mac)
안녕하세요
대추입니다. 오랜만에 글을 쓰네요
바로 본론으로 들어가겠습니다.
NVM은 이름 그대로 "Node Version Manager", 즉 노드 버전을 관리하는 도구입니다.
노드 버전이 무슨 상관이있냐 할 수 있는데 예를 들어, node-sass와 같은 노드 버전에 의존적인 패키지들이 있기때문에
개인이 아닌 팀 단위의 개발을 한다면 엄격한 버전관리가 필요하게 됩니다.
이럴때 유용하게 사용하는 것이 NVM입니다. 간단한 명령어를 통해서 버전을 다운로드, 변경, 삭제가 가능합니다
윈도우와 맥 두가지의 경우 모두 기록하도록 하겠습니다.
1. 윈도우(Windows)에서 설치
윈도우는 nvm-windows 레포지토리에서 설치 파일을 받으실 수 있습니다.
no-install 버전과 설치하는 setup 버전이 있는데 nvm은 설치해놓고 두고두고 사용할 것이기 때문에 setup 버전으로 사용하시는 것을 추천합니다.
다운로드 링크 : https://github.com/coreybutler/nvm-windows/releases
사진에서 빨간 박스로 친
nvm-setup.exe를 다운로드 후 설치를 진행하시면 됩니다.
혹시 no-install 버전을 선호하신다면 nvm-noinstall.zip을 다운로드 후 "환경 변수" 설정까지 하시면됩니다.
noinstall 버전을 선호하신다면 윈도우에서 환경변수 설정을 하는 방법은 아신다고 생각하고 설명하지는 않겠습니다.
설치 후 CMD나 Windows PowerShell과 같은 명령어 cli 툴로 아래의 명령어를 입력한 뒤 정상적으로 버전이 출력된다면 설치가 완료 된 것입니다.
nvm version
2. 맥(Mac)에서 설치
맥에서는 터미널에서 설치를 진행하게 됩니다.
맥에서 패키지를 편하게 받는 brew는 설치가 되어있다고 가정하겠습니다. (혹시 모르신다면 다른 블로그를 참고해서 설치하시면 됩니다)
그 다음 아래와 같은 명령를 차례대로 진행하시면 됩니다.
2-1) nvm 설치
brew install nvm
2-2) nvm 환경변수 설정
# nvm 관련 파일들이 저장될 디렉토리 생성
mkdir ~/.nvm
# .bash_profile을 수정
vi ~/.bash_profile
위의 코드를 실행하고 나온 창 맨 하단데 아래의 내용 복사 & 붙여넣기 (터미널 편집기 사용법은 따로 공부해주세요 ㅎㅎ..)
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm"
수정 내용을 적용시키기
source ~/.bash_profile
2-3) nvm 버전 확인
nvm version
3. NVM을 사용하여 Node 설치, 적용, 삭제해보기
(예시이미지만 윈도우며 윈도우, 맥 공통으로 사용)
3-0) 설치가능 node 버전 확인
# 설치 가능 버전 확인
nvm list available
3-1) 설치
# 사용 중인 버전으로 예시
nvm install 14.18.3
이미 설치했기때문에 아래의 사진처럼 나오지만 처음 설치한다면 설치 프로세스가 진행되며 설치가 완료됩니다.
3-2) 설치된 버전 확인
nvm ls
3-3) 설치한 버전 적용
# 사용 중인 버전으로 예시
nvm use 14.18.3
위의 사진처럼 나오셨다면 적용이 완료된 것이며 사용하시면 됩니다.
3-4) 특정 버전 삭제
nvm uninstall 14.18.3
지금 사용 중인 버전을 지우기는 그래서 명령어만 설명해드리겠습니다.
뒤에 삭제하실 버전만 적어주시면 됩니다.
여기까지 윈도우와 맥에서의 NVM을 이용한 노드 버전관리이며
직접 터미널로 특정 버전을 설치하고 지우고 하며 사용해도 되지만 꼬일 염려도 있으며
NVM 같은 훨씬 편한 도구가 있으니 위의 내용을 참고하여 사용하시길 바랍니다.
윈도우든 맥이든 설치 방법의 차이만 존재하며 명령어는 동일하다는 것만 기억하시면 됩니다.