NVM을 이용하여 Node 버전 관리하기

개발 · 2021. 6. 20.

Node.js 버전이 달라..?

개인 프로젝트를 진행하는데 기존에 존재하고 있는 boiler-plate에 추가 작업을 하려고 했었습니다. server와 client단이 나누어져 있기 때문에 각각에 대한 npm을 install 해주고 npm run을 실행하고서 잘 돌아가는지 확인하는데 코드를 만진 것도 없는데 오류가 나서 당황했습니다 😂

 

오류 코드를 살펴보니 boiler-plate에서 사용하는 노드 버전은 10.16.0이었는데 최신 버전의 node를 사용니까 지원하지 않거나 바뀐 라이브러리들이 있던 것이었습니다. 그렇다고 해서 node버전을 예전 것으로 다운로드하기에는 너무 귀찮겠다고 생각했고.. 언제나 해결책은 있으니까 해결 방법을 찾아보았습니다.

 

구글에 단순히 노드 버전 관리라고만 쳐도 다양한 정보가 나옵니다.

노드의 버전을 관리하는 NVM이라는 라이브러리를 많은 개발자들이 사용하고 여러 노드 버전을 사용할 수 있으며 협업에 대한 이점을 챙길 수 있어서 저도 사용해보기 위해 이 글을 쓰게 됐습니다 .

 

스크린샷 2021-06-20 오후 2.58.29.png
nvm - ls

현재 내가 사용하고 있는 node 버전이 10.16.0으로 설정되어 있다는 것입니다.

프로젝트마다 node 버전이 다를 텐데 이럴 때 NVM으로 여러 가지 node버전을 다운로드해서

적절하게 사용하도록 하면 될 것 같습니다 ㅎㅎ


1. NVM 설치하기

  • Mac OS Bigsur 11.4 환경에 설치를 했다.
  • Homebrew
  • zsh
  • 저는 Mac Os를 사용하므로 Mac Os기준으로 설명을 드리겠습니다.

- Homebrew 설치하기

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

터미널에 위의 코드를 복사하셔서 붙여 넣으셔도 되고 Homebrew 공식 사이트에 들어가셔도 됩니다.

 

 

- NVM 설치하기

brew install nvm

만약 brew를 설치 안 하셨다면 아래의 코드를 실행해주시길 바랍니다!

sudo curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash

 

- NVM 확인하기

nvm --version

아래와 같은 에러가 나온다면 환경설정을 해주어야 합니다.

-bash: nvm: command not found
zsh: command not found: nvm

 

- NVM 환경설정 - 1

  • Bash
vi ~/.bash_profile

export 관련 코드를 삽입해주세요.

export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

 

  • zsh
vi ~/.zshrc

export 관련 코드를 삽입해주세요.

export NVM_DIR="$HOME/.nvm"source $(brew --prefix nvm)/nvm.sh

만약 vim 단축키를 모르신다면   [vim 단축키] 통해 공부해봅시다.

 

 

- NVM 환경설정 - 2

 

  • bash
ource ~/.bash_profile
  • zsh
source ~/.zshrc

 

- NVM을 이용하여 Node 버전 관리하기

nvm install v[설치버전]
## 설치 : nvm install v10.16.0

nvm uninstall v[설치버전]
## 삭제 : nvm uninstall v10.16.0

nvm use v[사용할 버전]

nvm ls 
## 현재 설치된 노드 버전 리스트를 보여줍니다.

nvm alias default v[설치버전]
## 터미널 시작시 노드 기본버전 설정

node --v
## 노드 버전 확인

nvm --version
## nvm 버전 확인

 

- NVM을 이용하여 프로젝트에 Node 버전 명시하기

스크린샷 2021-06-20 오후 3.17.19.png
루트 디렉토리

루트 디렉터리에. nvmrc라는 파일을 생성해 주신 후 파일 내부에 사용할 node 버전을 명시해줍시다.

 

스크린샷 2021-06-20 오후 3.18.05.png
.nvmrc

터미널에서 nvm use를 입력하신 후 결과를 지켜봅시다.

 

스크린샷 2021-06-20 오후 3.18.49.png
nvm use

NVM이 정상적으로 작동되는 걸 볼 수 있습니다. 

 

이렇게 NVM을 사용하면 하나의 프로젝트를 개발할 때 협업을 한다면

다른 노드 버전을 받아와도 관리를 할 수 있고 편할 것 같습니다.

아직 개발자로서 커리어를 시작하지는 못했지만 이렇게 정보를 하나씩 정리해두면 언젠간 쓰일날이 오겠죠!! 

 

다음 글은 CLI 오류에 대해서 알아보도록 할 것 같은데 nvm을 사용하면서 해당 오류가 사라졌네요 ..

CLI 오류에 대한 해결 글을 링크해 두겠습니다 .

 


참고자료  - https://github.com/nvm-sh/nvm

 

nvm-sh/nvm

Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions - nvm-sh/nvm

github.com

 

ODDN:)