nvm 대신 asdf 사용하기
nvm은 역시나 가장 많이 사용되는 node version manager이다.
다만, 각 프로젝트마다 다른 node version을 사용하고 있을 때, 프로젝트 디렉토리에서 일일히 매번 nvm use 사용버전을 입력해주어야 한다.
물론, cmd 설정을 건드려 .nvmrc의 버전을 자동으로 읽어오게 하는 방법도 있지만, 공식적으로 nvm에서 지원하는 기능은 아니기에 설정이 번거롭다.
run `nvm use` automatically every time there's a .nvmrc file on the directory
How to configure my shell so that nvm use run automatically every time there's a .nvmrc file on the directory and use the latest version or a global config when there's no .nvmrc file?
stackoverflow.com
따라서 다른 node version manager를 찾아보았고, version manager중에서 node를 지원하면서 자동으로 프로젝트의 버전을 설정해주는 asdf를 알게되었다.
나는 macOS를 기준으로 이를 설치하고 사용해보았다. (또한 brew를 사용해 설치하였다. 다양한 설치 방법이 하단의 공식문서 가이드에 소개되어 있으므로, 참고할 수 있다)
일단, 의존성을 먼저 설치해준다.
brew install coreutils curl git
그리고, 이제 asdf를 설치한다.
brew install asdf
난 ZSH & Homebrew 환경에서 설치중이므로, 다음과 같이 명령어를 입력하였다. (이 또한, 다양한 환경의 설치법이 공식문서에 소개되어 있다)
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
명령어 입력 후 shell을 재시작해준다.
그리고 이제 asdf를 shell에 입력해주면, 버전 정보와 사용법, 깃헙 주소와 공식 문서 주소 등의 정보가 나오는 걸 확인할 수 있다.
asdf는 node뿐만 아니라 다양한 언어를 지원하기에, 필요한 플러그인을 설치해서 사용해야 한다.
node 플러그인을 설치하기 위해서 우선 의존성을 설치해주자.
brew install gpg gawk
이제 asdf node.js 플러그인을 설치해주자.
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
이제 asdf로 node version을 관리할 수 있다!
예제로 최신 버전과 16 버전의 nodejs를 설치하고 버전을 설정해보자.
asdf install nodejs 16.20.1
asdf install nodejs latest
설치가 끝난 뒤, 명령어를 통해 설치된 노드 버전을 확인할 수 있다.
asdf list nodejs
이제 asdf로 노드 버전을 설정할 수 있다.
local과 global 두가지 환경에서의 노드 버전을 설정할 수 있다.
asdf global nodejs 16.20.1
asdf local nodejs 20.5.0
노드 버전을 변경이 제대로 되었는지 확인해보자.
node -v
⛈ 다만, nvm과 비교하여 asdf의 아쉬운 점은, nvm에서 노드를 설치하거나 버전을 변경할 때 major 버전만 입력하면 최신 버전으로 인식해주었는데, asdf는 major, minor, patch 버전 모두를 입력해주어야 한다.
맨 앞에서 언급했던 asdf의 장점을 이제 확인해보자.
글로벌로 nodejs 버전이 16.20.1인 상태에서 노드 버전 20을 사용할 프로젝트 폴더에 진입해보자.
다음 명령어를 통해서 local환경에서 nodejs 버전을 설정할 수 있다.
asdf local nodejs 20.5.0
그러면, 이제 .tool-versions 파일이 생긴것을 확인할 수 있다.
해당 파일 내부는 다음과 같다.
nodejs 20.5.0
이제 local설정이 끝난 이 폴더는 새로 터미널을 실행해도 global 버전이 아니라, .tool-versions에 설정된 local 버전이 자동으로 적용되는 것을 확인할 수 있다.
☃️ 참고 문서
https://asdf-vm.com/guide/getting-started.html
Getting Started | asdf
asdf-vm.com
https://github.com/asdf-vm/asdf-nodejs/
GitHub - asdf-vm/asdf-nodejs: Node.js plugin for asdf version manager
Node.js plugin for asdf version manager. Contribute to asdf-vm/asdf-nodejs development by creating an account on GitHub.
github.com