NVM(Node Version Manager)는 Node.js의 버전을 변경, 사용해야 할 때 사용할 수 있는 도구이다. NVM은 협업을 하거나 다양한 프로젝트를 동시에 진행할 때 개발툴의 버전 호환문제를 해결하기 위해 사용한다. 루비의 rvm, rbenv나 파이썬의 pyenv도 같은 기능을 하는 도구이다.
아래 설명은 macOS 기준이다. (macOS 10.15부터 기본 셸은 zsh임)
👉 설치 방법
macOS 기준으로 nvm을 설치하기 가장 간단한 방법은 패키지 관리자인 Homebrew를 사용하는 것이다. brew -v 명령어를 입력해 설치여부를 확인한다. 이미 설치가 되어있다면 설치되어있는 Homebrew의 버전 정보를 확인할 수 있으며, 설치되지 않은 경우 아래와 같은 내용을 확인하게 될 것이다.
zsh: command not found: brew
이미 설치가 되어있다면 1번의 순서는 생략해도 좋다.
더욱 자세한 사항은 NVM repository공식문서를 참고하길 바란다.
1. brew 설치하기
brew 홈페이지로 이동하여 설치 스크립트를 복사하여 터미널에 붙여넣는다.
스크립트 우측 파일 아이콘을 누르면 쉽게 카피가 된다. 설치 후, brew -v 또는 brew --version 을 입력하여 잘 설치되었는지 확인해본다.
2. brew로 nvm 설치하기
brew install nvm
3. nvm 환경변수 설정하기
먼저 ~/ 위치에 .nvm 디렉토리를 생성한 후, vi 편집기로 ~/.zshrc를 열어준다.
(bash 쉘 사용 시, .bash_profile을 열어준다)
mkdir ~/.nvm
vi ~/.zshrc
* vi 편집 방법
vi 편집기에서 i를 누른 후 아래의 스크립트를 복사하여 붙여넣는다. 그 후 ESC를 눌러 입력을 완료한 후 :wq명령어로 저장하고 빠져 나온다.
아래 스크립트는 https://github.com/nvm-sh/nvm 에서 확인, 쉽게 복사할 수 있으므로 아래의 긴 스크립트를 긁는데 고생하지 않아도 된다.
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
마지막으로 아래의 명령어를 통해 아래의 터미널 프로파일에 적용시켜준다.
source ~/.bashrc
제대로 설치되었는지 확인을 위해 터미널에 nvm -v 또는 nvm --version 를 입력하면 설치된 버전 정보를 확인할 수 있다.
!!! 설치 후 nvm 버전이 확인되지 않을 때?? (zsh: command not found: nvm)
- nvm은 업데이트할 .zshrc를 찾고 아무것도 설치되지 않은것이 기본 설정 값이다. touch ~/.zshrc 을 생성하고 설치 스크립트를 다시 실행해본다.
- 기본 셸인 bash를 사용하는 경우, .bash_profile 파일이 없을 수 있으므로 touch ~/.bash_profile 을 만들고 설치 스크립트를 다시 실행한다. 그 다음 source ~/.bash_profile 을 실행한다.
- 터미널을 다시 시작하거나 source 명령어로 스크립트를 실행한다.
이 'command not found' 오류는 MacOS 모하비(Mojave)운영체제부터 환경변수가 적용되어 터미널을 실행 시킬 때마다 .bash_profile 또는 .zshrc가 새로 로드되기 때문에 발생한다.
만약 기본 셸이 zsh이면, vi ~/.bash_profile을 아무리 쳐봐도 아무 일도 일어나지 않으며 반대의 경우도 마찬가지이다.
4. Node.js 설치
현재 다른 버전이 이미 설치가 되어있다는 가정하여 필요한 버전이 10.10.0일 경우, 아래와 같이 입력하여 설치한다.
nvm install 10.10.0
설치한 버전을 사용하기 위해 아래와 같이 입력한다.
nvm use 10.10.0
잘 적용되었는지 node -v 또는 node --version 으로 확인한다.
use가 아니라 install 명령어로 원하는 버전을 입력했을 때 해당 버전의 유무에 따라 설치 후 설정되거나 그냥 설정될 수 있으니 원하는 방법으로 버전을 선택하여 사용해도 무관하다.
끗~~!!!!!
'개념 정리' 카테고리의 다른 글
이메일 템플릿(웹메일) 코딩 시 주의사항 (0) | 2022.01.21 |
---|---|
<wbr> vs <br> (0) | 2022.01.18 |
polyfill(폴리필)이란? (0) | 2022.01.13 |
[MAC] 사용 중인 포트 찾아서, Kill (0) | 2022.01.11 |
인터프리터 언어와 컴파일 언어 (0) | 2022.01.03 |