NVM

Node Version Manager의 줄임말입니다.
말 그대로 Node의 Version 들을 관리 해주는 도구입니다.

여러 Node.js 를 설치 하고 달리 사용 해야 할 경우 쉽게 전환해주는 shell script입니다.

NVM 은 POSIX-compliant shell (sh, bash, ksh, zsh, dash)에서 작동합니다.

  • Linux / Unix
  • macOS
  • Windows WSL

NVM은 왜 사용 할까요?

개발환경에 따라 Node.js 버전을 달리 사용 해야 할 경우에 용이하게 버전을 바꿔서 사용할 수 있게 도와줍니다. 예시로 아래와 추가 적인 상황이 있을 수 있습니다.

  • 협업을 할때, 또는 다양한 프로젝트를 동시에 진행해야 할 때
  • 다양한 라이브러리 / 프레임워크 / 개발툴의 버전 호환 문제때문에
  • LTS(Long Time Support) 버전이 달라 졌을 경우
  • 최신 버전을 사용해야 할 경우
  • 과거 사용 했던 버전을 사용해야 할 경우

NVM 설치하기

최신버전을 다운 받기 원하면 NVM Repository(공식 문서) 참고 해주시길 바랍니다.

NVM 공식문서에서 제공한 install & update 를 도와 주는 script 문을 작성합니다.

curl 사용 할 경우

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

wget 사용 할 경우

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

위 2개 중 하나의 명령어를 입력 할 경우 2가지의 변화가 생깁니다.

  1. 현재 사용자의 홈 디렉토리에 .nvm 디렉토리가 생성됩니다.
chaser@DESKTOP-Q89E2CK:~$ pwd
/home/chaser
chaser@DESKTOP-Q89E2CK:~$ ls -a | grep .nvm
.nvm
  1. 쉘 설정 파일에 nvm 명령어 스크립트가 추가됩니다.
  • 쉘의 종류에 따라 파일들이 다릅니다.(~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc)
chaser@DESKTOP-Q89E2CK:~$ tail -n 3 .bashrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

.nvm 디렉토리

chaser@DESKTOP-Q89E2CK:~$ ls -la .nvm
total 300
drwxr-xr-x 8 chaser chaser   4096 Sep  1 13:37 .
drwxr-xr-x 9 chaser chaser   4096 Sep  1 21:45 ..
drwxr-xr-x 3 chaser chaser   4096 Sep  1 13:37 .cache
-rw-r--r-- 1 chaser chaser    140 Sep  1 13:36 .dockerignore
-rw-r--r-- 1 chaser chaser    523 Sep  1 13:36 .editorconfig
drwxr-xr-x 8 chaser chaser   4096 Sep  1 13:36 .git
-rw-r--r-- 1 chaser chaser      9 Sep  1 13:36 .gitattributes
drwxr-xr-x 3 chaser chaser   4096 Sep  1 13:36 .github
-rw-r--r-- 1 chaser chaser    253 Sep  1 13:36 .gitignore
-rw-r--r-- 1 chaser chaser     51 Sep  1 13:36 .mailmap
-rw-r--r-- 1 chaser chaser     19 Sep  1 13:36 .npmrc
-rw-r--r-- 1 chaser chaser   2713 Sep  1 13:36 .travis.yml
-rw-r--r-- 1 chaser chaser   5424 Sep  1 13:36 CODE_OF_CONDUCT.md
-rw-r--r-- 1 chaser chaser   1057 Sep  1 13:36 CONTRIBUTING.md
-rw-r--r-- 1 chaser chaser   3723 Sep  1 13:36 Dockerfile
-rw-r--r-- 1 chaser chaser   1113 Sep  1 13:36 LICENSE.md
-rw-r--r-- 1 chaser chaser   5361 Sep  1 13:36 Makefile
-rw-r--r-- 1 chaser chaser  39200 Sep  1 13:36 README.md
-rw-r--r-- 1 chaser chaser    882 Sep  1 13:36 ROADMAP.md
drwxr-xr-x 3 chaser chaser   4096 Sep  1 13:37 alias
-rw-r--r-- 1 chaser chaser   2201 Sep  1 13:36 bash_completion
-rwxr-xr-x 1 chaser chaser  14926 Sep  1 13:36 install.sh
-rwxr-xr-x 1 chaser chaser    344 Sep  1 13:36 nvm-exec
-rw-r--r-- 1 chaser chaser 134284 Sep  1 13:36 nvm.sh
-rw-r--r-- 1 chaser chaser   2228 Sep  1 13:36 package.json
-rwxr-xr-x 1 chaser chaser   1235 Sep  1 13:36 rename_test.sh
drwxr-xr-x 9 chaser chaser   4096 Sep  1 13:36 test
-rwxr-xr-x 1 chaser chaser   2364 Sep  1 13:36 update_test_mocks.sh
drwxr-xr-x 3 chaser chaser   4096 Sep  1 13:37 versions

공식문서에서 제공한 script 문을 작성 할 경우 nvm github(공식문서)에 있는 파일 들을 .nvm 디렉토리에 설치를 도와주고 따로 환경변수를 변경 하지 않아도 환경변수 값을 작성해줍니다.

NVM 명령어

자세한 명령어 확인하기

$ nvm --help

이는 NVM 공식문서(usage) 부분에서 확인 할 수 있습니다.

NVM Version 확인하기

$ nvm --version

Node 설치하기

# 최신버전 설치하기
$ nvm install node
# 특정 버전 설치하기
$ nvm install {version}         # ex1) nvm istall v13  ex2) nvm istall 14.17.6
# LTS 버전 설치하기
$ nvm istall --lts

node를 설치 할 경우 다음과 같은 경로에 설치가 됩니다.

chaser@DESKTOP-Q89E2CK:~/.nvm/versions/node$ pwd
/home/chaser/.nvm/versions/node
chaser@DESKTOP-Q89E2CK:~/.nvm/versions/node$ ls
v14.17.6

NVM 에서 지원 하는 node 버전은 다음 명령어로 확인이 가능합니다.

$ nvm ls-remote

2021-09-02 기준 node.js 사이트 최신 버전은 16.8.0 버전이며 nvm 에서 제공하는 최신 버전 또한 16.8.0 버전입니다.

Node 설치한 목록 확인하기

chaser@DESKTOP-Q89E2CK:~/.nvm/versions/node$ nvm ls
->     v14.17.6
         system

지금 현재 nvm을 통해서 다운로드 받은 node 는 v14.17.6 버전입니다. 그런데 system 이란 글자가 있습니다. 이는 다음과 같이 확인할 수 있습니다.

chaser@DESKTOP-Q89E2CK:~/.nvm/versions/node$ nvm run system --version
Running node system (npm v6.14.4)
v10.19.0

Node 버전 선택하기

$ nvm use {version}
chaser@DESKTOP-Q89E2CK:~/.nvm/versions/node$ nvm ls
->     v14.17.6
         system
default -> lts/* (-> v14.17.6)

use 명령어를 사용 할 경우 새로운 쉘을 실행 하거나 다시 띄우게 되면 node의 버전이 default 버전으로 돌아가게 됩니다.

이를 방지하기 위해서 기본적으로 제공할 버전을 다음과 같이 변경 합니다.

$ nvm alias default {version}

# 설치되어 있는 가장 최신버전의 node를 defalut로 사용하기
$ nvm alias default node

현재 사용중인 버전 확인하기

$ nvm current

node.js 설치 경로 확인하기

$ which node

필요 없는 node 버전 삭제하기

$ nvm uninstall {version}

'Node.js' 카테고리의 다른 글

[Node] NVM-windows 설치하기  (0) 2021.09.01
[Node] Windows에서 Node.js 설치하기  (0) 2021.09.01

+ Recent posts