프론트

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

ZestLee 2024. 3. 10. 16:11

개요

  • 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 가 있는지 체크하기 때문에 성능 저하가 발생할 수도 있음

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