개요
- 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 버전이 설치되어있다면
- 해당 버전을 사용하도록 함
- nvm 버전이 설치되어있지 않다면
- .nvmrc 파일이 없다면
- 현재 node 버전이 nvm 기본 버전이 아니라면
- nvm 기본 버전을 사용하도록 함
- 현재 node 버전이 nvm 기본 버전이 아니라면
이는 디렉토리 변경할 때마다 실행됨
터미널을 새로 킬 때마다 .nvmrc 가 있는지 체크하기 때문에 성능 저하가 발생할 수도 있으나,
하지만 디렉토리를 자주 옮기는 경우가 적다면 차라리 자동화 시켜놓는 편이 편하지 않을까 싶다