여러 명이 협업하는 회사에서는 개발 환경이 통일되지 않으면 문제 발생 가능성이 커집니다.
특히, 같은 프로젝트에서도 다른 개발자가 다른 Node.js 버전을 사용하면, 패키지 설치 및 실행 시 오류가 발생할 수 있습니다.
이를 해결하는 대표적인 방법이 NVM입니다. (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.zshrc
nvm --version
명령어 설명
nvm install <버전>
특정 버전의 Node.js 설치
nvm list
설치된 Node.js 버전 목록 확인
nvm use <버전>
특정 버전의 Node.js 사용
nvm alias default <버전>
기본으로 사용할 Node.js 버전 설정
nvm current
현재 사용 중인 Node.js 버전 확인
nvm uninstall <버전>
특정 Node.js 버전 삭제
nvm deactivate
NVM 환경에서 벗어나 기본 Node.js로 전환
각 프로젝트별로 고정된 Node.js 버전을 유지하려면, 프로젝트 폴더에 .nvmrc 파일을 생성하면 됩니다.
echo "16.20.0" > .nvmrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
autoload -U add-zsh-hook
load_nvmrc() {
if [[ -f .nvmrc ]]; then
nvm use
fi
}
add-zsh-hook chpwd load_nvmrc
위 스크립트를 넣어주면 디렉토리 변경 시 자동으로 nvm이 사용됩니다.
NVM은 Node.js를 각 버전별로 ~/.nvm 디렉토리에 저장합니다.
따라서 $ which node
명령어를 실행하면 현재 사용 중인 Node.js 버전이 어느 경로에 있는지 확인할 수 있습니다.
NVM을 사용하면 npm -g install 명령어를 실행해도 각 Node.js 버전별로 글로벌 패키지를 따로 관리할 수 있습니다.
npm root -g
에서 보이는 폴더입니다.
npm init -y
를 하면 package.json 파일 생성.
이렇게 하면 해당 폴더에서 node_modules가 생성되어서 또 분리가 가능합니다.
로컬 환경에서는 NVM을 사용하여 버전을 관리하면 좋지만, 보다 확실한 방법은 Docker를 사용하는 것입니다.
Docker를 활용하면 각 프로젝트별로 격리된 Node.js 환경을 유지할 수 있습니다.
다음 포스팅에서는 Docker를 이용한 Node.js 버전 관리 방법을 소개하겠습니다.