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