티스토리 뷰

프로젝트별로 Node Version 관리하기

 

개요

하나의 프로젝트를 할때는 상관없지만, 기존 레거시를 유지보수하면서, 새로운 프로젝트를 진행해야 할 때, 프로젝트별로 버전이 상이할 때가 있다. 그나마 요즈음은 nvm 있어서 버전을 쉽게 변경가능하지만 이마져도 귀찮은 것이 개발자의 게으름이 아닌가 싶다.

이번에는 프로젝트별로 node 버전을 자동으로 바꿔주는 방법을 사용하려고 한다.

준비물 

(본작업은 m1 맥북에서 작업을 진행하였으나,  intel 맥도 크게 다르지 않을것으로 추측된다)

1. NVM

2. 버전이 서로 다른 프로젝트 2개 이상

 

작업

# nvm install
brew install nvm

# nvm 환경설정
mkdir -p ~/.nvm

# 생성된 nvm 환경으로 이동
cd ~/.nvm

# 내용 생성
touch auto-nvm.sh
chmod +x auto-nvm.sh

# 추후에 작성할 auto-nvm.sh 파일을 .zshrc 파일에 적용
echo "source ~/.nvm/auto-nvm.sh" >> ~/.zshrc

 

위에서 생성한 auto-nvm.sh 파일에 내용 추가

# https://github.com/nvm-sh/nvm#zsh
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

 

적용

source ~/.zshrc

 

프로젝트 root로 이동

.nvmrc 파일을 생성하고 해당 프로젝트의 node version을 입력한다

# 예
v18.15.0

 

다른 프로젝트에서도 동일하게 프로젝트 root 에서 .nvmrc 파일을 생성하고 node version을 입력한다.

 

 

 

댓글


최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday