글 작성자: 택시 운전사
반응형

node.js 버전이 다른 프로젝트를 왔다갔다 하면서 매번 nvm use를 해서 노드 버전을 바꿔왔는데, 아래의 스크립트를 사용하면 .nvmrc가 있는 프로젝트라면 자동으로 nvm use를 해주고, 해당 버전이 없다면 nvm install까지 해준다.

 

.zsh를 사용하는 경우에 사용가능하고 주석에 나와있듯이 nvm 초기화 이후에 해당 코드를 넣으면 된다.

# place this after nvm initialization!
autoload -U add-zsh-hook
load-nvmrc() {
  [[ -a .nvmrc ]] || return
  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
반응형