Skip to content

nvmrc 설정

소개

여러 프로젝트를 개발할 때 각 프로젝트마다 다른 Node.js 버전이 필요할 수 있습니다. 이러한 경우 터미널에서 nvm installnvm use 명령을 실행하여 각 프로젝트의 Node.js 버전을 지정하고 버전을 설치하고 전환해야 합니다.

그러나 매번 터미널에서 수동으로 명령을 실행하는 것은 번거로워지며, 특히 프로젝트 수가 증가함에 따라 더욱 그렇습니다. 버전 전환을 잊거나 잘못된 버전으로 전환하기 쉬우며, 이로 인해 프로젝트가 시작되지 않거나 런타임 중에 오류가 발생할 수 있습니다.

이것이 바로 Node.js 버전을 관리하고 자동으로 전환하는 방법이 필요한 곳이며, 여기서 .nvmrc가 등장합니다.

.nvmrc란 무엇인가요?

위의 설명에서 .nvmrc 파일이 프로젝트의 Node.js 버전을 관리하는 데 사용된다는 것을 이해할 수 있습니다. 이 파일은 매우 간단합니다. nvm이 인식할 수 있는 Node.js 버전을 나타내는 텍스트만 포함되어 있습니다(예: v18.12.0).

.nvmrc 파일을 사용하는 방법은?

Node.js 버전 번호 또는 nvm이 이해할 수 있는 다른 텍스트가 포함된 .nvmrc 파일을 만들 수 있습니다. 자세한 내용은 터미널에서 nvm --help를 입력할 수 있습니다.

.nvmrc 파일을 사용하면 버전을 지정하지 않고 터미널에서 nvm use, nvm install, nvm exec, nvm run, nvm which와 같은 명령을 실행할 때 .nvmrc 파일에 지정된 버전이 사용됩니다.

.nvmrc 파일 생성

예를 들어 현재 디렉토리에서 nvm이 18.12의 최신 릴리스, 최신 LTS 버전 또는 최신 Node.js 버전을 지정하도록 하려면 echo 명령을 사용하여 .nvmrc 파일을 생성할 수 있습니다:

bash
$ echo "18.12" > .nvmrc
# 최신 LTS 버전으로 설정
$ echo "lts/*" > .nvmrc
# 최신 버전으로 설정
$ echo "node" > .nvmrc

nvm use와 같은 명령은 현재 디렉토리에서 위쪽으로 디렉토리 구조를 탐색하여 .nvmrc 파일을 찾습니다. 즉, .nvmrc 파일이 있는 디렉토리의 하위 디렉토리에서 nvm use와 같은 명령을 실행해도 여전히 해당 .nvmrc 파일을 사용합니다.

.nvmrc 파일에는 nvm --help에 나열된 것과 일치하는 <version>이 포함되어야 하며 그 뒤에 줄 바꿈이 있어야 합니다. 후행 공백은 허용되지 않으며 후행 줄 바꿈은 필수입니다.

아래 이미지에 표시된 것처럼 v14.21.3 뒤에 공백이 없고 줄 바꿈만 있습니다.

nvmrc

셸 터미널과의 긴밀한 통합

avn을 사용하여 셸과 긴밀하게 통합하고 디렉토리를 변경할 때 자동으로 nvm을 호출할 수 있습니다.

가벼운 솔루션을 선호한다면 아래 방법을 사용할 수 있습니다.

.nvmrc 파일을 기반으로 zsh 터미널에서 Node.js 버전 자동 전환

다음 코드를 $HOME/.zshrc에 추가한 후 .nvmrc 파일이 포함된 디렉토리에 들어갈 때마다 nvm use가 자동으로 호출됩니다. .nvmrc 파일의 문자열은 nvm에게 사용할 Node.js 버전을 알려줍니다.

bash
# 홈 디렉토리 열기 및 .zshrc 파일 편집
$ cd
$ vi .zshrc

.zshrc에 작성해야 하는 코드입니다:

bash
# 이 코드 세그먼트를 .zshrc 파일에 복사
# nvm 초기화 후에 배치하세요!
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 [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

.zshrc 파일을 편집한 후 source .zshrc를 실행하여 명령이 적용되도록 합니다:

bash
$ source ~/.zshrc

.nvmrc 파일이 있는 프로젝트에서 vscode에서 통합 터미널을 열면 nvm use가 자동으로 실행되고 명령줄에 해당 출력이 표시됩니다.

nvmrc

NVM for Node.js by www.nvmnode.com로 제작됨