하나의 프로젝트만 사용하는경우에는 문제가 없지만 여러 프로젝트를 사용하는데 프로젝트별로 node 버전이 다른경우 실행할때마다 버전을 잡아줘야 하고 다른버전으로 npm install 이라도 하는경우에는 실행시 문제가 겪는등의 귀찮은 일에 휘말리게 된다.
그러므로 프로젝트를 띄울때 알아서 해당 노드 버전이 셋팅되는게 가장 좋으므로 관련설정 방법을 기재한다.
( 로컬 실행에서의 설정이므로 참고바랍니다. )
해당 내용은 이미 nvm 이 설치되어있다는 전제로 한다.
mac 에서 확인한 내용이라 window 에서는 어떻게 하는지 잘…… ㅡ.,ㅡ ;
.nvmrc 파일 생성
프로젝트 루트 파일에 .nvmrc
파일을 생성한다.
해당파일에 사용할 node 버전을 적어준다.
v18.12.1
사용하고 있는 os 의 터미널에 다음을 셋팅한다.
https://github.com/nvm-sh/nvm#deeper-shell-integration
먼저 본인의 프로젝트가 어떤 환경으로 로컬실행되는지 확인 후 아래의 설정을 업데이트 해준다.
bash
를 사용하는경우
터미널에서 vi ~/.bashrc
명령어를 실행하여 설정 파일을 열어주고 하단에 아래의 내용을 입력 후 저장한다.
cdnvm() {
command cd "$@" || return $?
nvm_path=$(nvm_find_up .nvmrc | tr -d '\n')
# If there are no .nvmrc file, use the default nvm version
if [[ ! $nvm_path = *[^[:space:]]* ]]; then
declare default_version;
default_version=$(nvm version default);
# If there is no default version, set it to `node`
# This will use the latest version on your machine
if [[ $default_version == "N/A" ]]; then
nvm alias default node;
default_version=$(nvm version default);
fi
# If the current version is not the default version, set it to use the default version
if [[ $(nvm current) != "$default_version" ]]; then
nvm use default;
fi
elif [[ -s $nvm_path/.nvmrc && -r $nvm_path/.nvmrc ]]; then
declare nvm_version
nvm_version=$(<"$nvm_path"/.nvmrc)
declare locally_resolved_nvm_version
# `nvm ls` will check all locally-available versions
# If there are multiple matching versions, take the latest one
# Remove the `->` and `*` characters and spaces
# `locally_resolved_nvm_version` will be `N/A` if no local versions are found
locally_resolved_nvm_version=$(nvm ls --no-colors "$nvm_version" | tail -1 | tr -d '\->*' | tr -d '[:space:]')
# If it is not already installed, install it
# `nvm install` will implicitly use the newly-installed version
if [[ "$locally_resolved_nvm_version" == "N/A" ]]; then
nvm install "$nvm_version";
elif [[ $(nvm current) != "$locally_resolved_nvm_version" ]]; then
nvm use "$nvm_version";
fi
fi
}
alias cd='cdnvm'
cd "$PWD"
zsh
를 사용하는경우
터미널에서 vi ~/.zshrc
명령어를 실행하여 zsh 설정 파일을 열어주고 하단에 아래의 내용을 입력 후 저장한다.
# place this after nvm initialization!
autoload -U add-zsh-hook
load-nvmrc() {
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" != "$(nvm version)" ]; then
nvm use
fi
elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then
echo "Reverting to nvm default version"
nvm use default
fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc
프로젝트 실행시 .nvmrc 에 설정한 버전으로 node 버전이 제대로 잡혀있는지 확인한다.
끗.