본문 바로가기
Programming/Node.js

[.nvmrc]를 활용한 Node.js 버전 관리

by p4cho 2024. 8. 6.
728x90

Node.js 개발을 할 때, 프로젝트마다 요구하는 Node.js 버전이 다를 수 있다. 이럴 때 .nvmrc 파일이 유용하다. 이 글에서는 .nvmrc 파일을 사용해 워크스페이스마다 다른 버전의 Node.js를 사용하는 방법을 소개한다.

NVM 설치

먼저, NVM(Node Version Manager)을 설치해야 한다. NVM은 여러 버전의 Node.js를 쉽게 관리할 수 있게 해주는 도구로서 터미널에 다음 명령어를 입력해 NVM을 설치할 수 있다.

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

참고: https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating

설치가 완료되면, 다음 명령어를 입력해 NVM이 제대로 설치되었는지 확인한다.

command -v nvm

이 명령어를 입력했을 때 nvm이 출력되면 설치가 성공한 것이다.

Node.js 버전 설치

NVM을 설치한 후, 필요한 Node.js 버전을 설치할 수 있다. 예를 들어, Node.js 버전 20를 설치하려면 다음 명령어를 입력한다.

nvm install 20

이와 같은 방식으로 필요한 모든 버전의 Node.js를 설치한다.

.nvmrc 파일 생성

각 워크스페이스 디렉터리에서 사용할 Node.js 버전을 지정하기 위해 .nvmrc 파일을 생성한다. .nvmrc 파일은 해당 디렉터리에서 사용할 Node.js 버전을 명시한다.

echo "v20.15.0" > .nvmrc

이 명령어는 현재 디렉터리에서 Node.js 버전 20.15.0을 사용하도록 지정한다. 필요에 따라 다른 버전을 지정할 수도 있다.

.nvmrc 파일 사용

각 워크스페이스 디렉터리에 .nvmrc 파일을 생성했다면, 해당 디렉터리로 이동할 때마다 자동으로 지정된 Node.js 버전을 사용하도록 설정할 수 있다.

nvm use

이 명령어를 입력하면, 현재 디렉터리의 .nvmrc 파일에 명시된 Node.js 버전이 활성화된다. 매번 수동으로 nvm use 명령어를 입력하는 것이 번거로울 수 있는데, 이를 자동화하기 위해 쉘 프로필 파일에 아래 내용을 추가하여 자동화 할 수 있다.

# .bashrc 또는 .zshrc에 추가
autoload -U add-zsh-hook
load-nvmrc() {
  local node_version="$(nvm version)"
  local nvmrc_path="$(nvm_find_nvmrc)"

  if [ -n "$nvmrc_path" ]; then
    local nvmrc_node_version=$(cat "${nvmrc_path}")

    if [ "$nvmrc_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvmrc_node_version" != "$node_version" ]; then
      nvm use
    fi
  elif [ "$node_version" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

이렇게 설정하면, 디렉터리를 이동할 때마다 자동으로 .nvmrc 파일에 지정된 Node.js 버전이 활성화된다.

# 출력 예시
Found '디렉터리경로/.nvmrc' with version <v20.15.0>
Now using node v20.15.0 (npm v10.8.1)

마무리

.nvmrc 파일을 활용하면, 각 프로젝트에서 요구하는 Node.js 버전을 쉽게 관리할 수 있다. 이를 통해 개발 환경을 일관되게 유지하고, 버전 충돌 문제를 방지할 수 있다.

728x90