nvm으로 Node.js 설치하기
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 # 버전 삭제