프론트/javascript

IDE 켜지면 저절로 node 버전 셋팅되도록 하기

ZestLee 2024. 4. 7. 13:51

개요

  • IDE 를 킬 때마다 매번 node 버전을 셋팅하는 것이 킹받았다

사전 작업

  • 프로젝트의 node version 을 .nvmrc 로 추가해 놓는다
// .nvmrc 
12.16.3
  • 이것은 각 개발자가 로컬에 갖고 있는 것이 아닌,
    프로젝트 디렉토리에 넣고, git 에 올리는 편이 나을 것 같다
    (모든 개발자의 노드 버전을 맞추기 위해)

zsh 설정

  • 터미널에 vi ~/.zshrc 입력하여 zshrc 파일을 엶
  • 최하단에 아래 내용을 넣고 > esc > :wq 하여 저장
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=$(nvm 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 파일이 있다면
    • nvm 버전이 설치되어있지 않다면
      • 해당 버전을 설치
    • nvm 버전이 설치되어있다면
      • 해당 버전을 사용하도록 함
  • .nvmrc 파일이 없다면
    • 현재 node 버전이 nvm 기본 버전이 아니라면
      • nvm 기본 버전을 사용하도록 함

이는 디렉토리 변경할 때마다 실행됨


터미널을 새로 킬 때마다 .nvmrc 가 있는지 체크하기 때문에 성능 저하가 발생할 수도 있으나,

하지만 디렉토리를 자주 옮기는 경우가 적다면 차라리 자동화 시켜놓는 편이 편하지 않을까 싶다