nvm으로 Node.js 설치하기

English (N/A)

Node.js를 설치할 때는 nvm(Node Version Manager)을 사용하는 것을 권장한다. 공식 홈페이지에서 직접 설치하거나 Homebrew, apt-get 같은 패키지 매니저로 설치하면 버전 관리가 불편하다. 프로젝트마다 다른 Node.js 버전이 필요할 때 대응하기 어렵고, 전역 패키지 설치 시 권한 문제가 발생하기도 한다.

nvm 설치

macOS / Linux

다음 명령어로 nvm을 설치한다.

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

설치 스크립트가 자동으로 .zshrc 또는 .bashrc에 nvm 초기화 코드를 추가한다. 터미널을 재시작하거나 다음 명령어로 적용한다.

source ~/.zshrc  # 또는 source ~/.bashrc

설치가 잘 되었는지 확인한다.

nvm --version

Windows

Windows에서는 nvm-windows를 사용한다. 릴리즈 페이지에서 nvm-setup.exe를 다운로드하여 설치한다.

Node.js 설치

설치 가능한 버전 목록을 확인한다.

nvm ls-remote

LTS(Long Term Support) 버전을 설치하는 것을 권장한다. LTS 버전은 안정성이 검증되어 있고 장기간 보안 업데이트를 받을 수 있다.

nvm install --lts

특정 버전을 설치하고 싶다면 버전을 명시한다.

nvm install 20.11.0
nvm install 18

설치가 완료되면 자동으로 해당 버전이 활성화된다. 확인해보자.

node -v
npm -v

버전 전환

여러 버전을 설치해두고 필요에 따라 전환할 수 있다. 이게 nvm의 핵심 기능이다.

설치된 버전 목록을 확인한다.

nvm ls

다른 버전으로 전환한다.

nvm use 18
nvm use 20

기본 버전을 설정한다. 새 터미널을 열 때 자동으로 이 버전이 사용된다.

nvm alias default 20

프로젝트별 버전 관리

프로젝트마다 다른 Node.js 버전을 사용해야 할 때가 있다. 예를 들어 레거시 프로젝트는 Node 16을 쓰고, 새 프로젝트는 Node 20을 쓰는 경우다.

프로젝트 루트에 .nvmrc 파일을 만들어두면 해당 프로젝트에서 사용할 Node.js 버전을 명시할 수 있다.

echo "20" > .nvmrc

.nvmrc 파일이 있는 디렉토리에서 nvm use를 실행하면 자동으로 해당 버전으로 전환된다.

cd my-project
nvm use
# Found '/path/to/my-project/.nvmrc' with version <20>
# Now using node v20.x.x

디렉토리 진입 시 자동 전환

매번 nvm use를 입력하기 귀찮다면 쉘 설정에 자동 전환 스크립트를 추가할 수 있다. .zshrc에 다음을 추가한다.

autoload -U add-zsh-hook
load-nvmrc() {
  local nvmrc_path="$(nvm_find_nvmrc)"
  if [ -n "$nvmrc_path" ]; then
    local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
    if [ "$nvmrc_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then
      nvm use
    fi
  elif [ "$(nvm version)" != "$(nvm version default)" ]; then
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

이렇게 하면 .nvmrc 파일이 있는 디렉토리로 이동할 때 자동으로 해당 버전으로 전환된다.

유용한 명령어 정리

nvm --version          # nvm 버전 확인
nvm ls                 # 설치된 버전 목록
nvm ls-remote          # 설치 가능한 버전 목록
nvm install --lts      # 최신 LTS 버전 설치
nvm install 20         # 특정 버전 설치
nvm use 20             # 버전 전환
nvm alias default 20   # 기본 버전 설정
nvm current            # 현재 사용 중인 버전
nvm uninstall 18       # 버전 삭제

참고