[https://www.sobyte.net/post/2022-04/node-mvn-n/](Node version manager: nvm and n difference)
위 글을 참고하여 작성하였습니다 (번역 수준..ㅎ)
node의 버전관리 툴에는 크게 2가지가 있습니다
- nvm
- n
nvm이 제일 대중적이지만 최근에는 'n'도 많이 이용하는 것으로 보입니다
현재 현업에서도 nvm을 이용하고 있는데 n과 뭐가 다른지 궁금해져서 찾아보았습니다
n
n은 npm package중 하나입니다
즉 node 버전 관리를 위한 툴인 n을 이용하기 위해서 우선적으로 node가 설치되어야 합니다 (????)
어떻게 보면 달걀/닭 얘기 같은 느낌으로 조금 웃기긴합니다
즉, node 버전을 아무거나 하나 설치하고(lts로 설치하면 될 듯) npm을 이용해 n을 설치하여
다른 버전의 node들도 손 쉽게 설치할 수 있습니다
- node 다른 버전 설치 경로: /usr/local/bin
nvm
nvm은 n과 달리 npm package가 아닙니다. 그렇기 때문에 node와 별개로 설치할 수 있습니다
=> nvm은 node에 의존적이지 않음. node가 nvm에 의존적
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash
위와 같이 설치 후 shell config를 변경해주어야 합니다(~/.zshrc, ~/.bashrc 등)
그러면 이제 nvm을 이용해서 node의 다른 버전들을 설치할 수 있습니다
node 다른 버전 설치 경로: ~/.nvm/<version>/
- $PATH를 수정하여 지정된 버전의 노드에대한 경로를 포함하여 node 명령어 이용이 가능하게 함
- nvm이 n보다 복잡, 그러나 standalone package이므로 node와 nvm간의 관계가 좀 더 논리적
nvm과 n의 차이
- n이 nvm 보다 설치가 간편. nvm은 설치하는데 많은 문제가 있다.
시스템 지원의 차이. nvm은 Windows를 지원하지 않는다. (Windows를 지원하지 않는다고 하지만 .exe 파일로 설치 가능) 잘못 된 것으로 보임. nvm 윈도우에서 설치 가능. 오히려 n이 윈도우에서 설치되지 않음
- 글로벌 모둘관리에 차이가 존재. n은 글로벌 모듈 관련해서는 아무것도 하지 않음. 즉, 글로벌 모듈 실행시 오류가 발생할 위험이 존재.
- nvm은 글로벌 모듈이 sandbox 형태로 존재하여 버전 전환 후 재설치가 필요하며 버전 간 충돌이 없음.
- n은 node 경로가 항상 /usr/local/bin; 그러나 nvm은 달라질 수 있음
그렇다면 무엇을 이용할까???
- Windows라면 선택지가 n 밖에 없다. 아니면 Mac을 써라
- node 버전을 자주 변경해야한다면, global module 호환성 문제를 위해 nvm을 사용해라
- 호환성 이슈에 대해 전혀 생각할 필요 없고 node 설치 및 사용 경험이 많은 light user라면 n을 써라
- 나에게 뭘 골랐냐고 묻는다면 더 popular 한 것을 선택했다고 할 것이다
그래서 나는 무엇을 선택해서 사용해볼까 고민해봤다.
4번에 따르면 무조건 nvm. (사실 n을 설치해보려 했는데 아래와 같은 에러로 그냥 nvm 설치...)
https://github.com/nvm-sh/nvm
nvm 설치
https://github.com/coreybutler/nvm-windows/releases
윈도우의 경우 위 사이트에 들어가서 nvm-setup.exe를 받아 설치하시면 됩니다
만약 node가 이미 설치 되어있는 상태라면 아래와 같은 확인 창이 뜰 수 있습니다
확인을 눌러줍니다
cmd 창을 열고 아래와 같이 명령어를 입력해봅니다
> nvm version
1.1.9
> nvm list
* 16.15.1 (Currently using 64-bit executable)
git bash를 열어서 해봐도 잘 나오는 것을 볼 수 있습니다
nvm으로 다른 버전 설치
> nvm install 14.18.1
> nvm list
> nvm current
위와 같이 설치를 원하는 버전을 입력하여 설치할 수 있습니다
그리고 list 명령을 이용하여 설치된 버전, 현재 사용중인 버전을 확인할 수 있습니다
nvm 버전 변경하기
> nvm use 14.18.1
use 명령을 이용해 버전을 변경할 수 있습니다
그런데 에러 발생.... nvm use exit status 1
nvm use exit status 1, exit status 5 해결 방법
근본적인 원인을 알면 아주 간단하다
# Usage
nvm-windows runs in an Admin shell. You'll need to start powershell or Command Prompt as Administrator to use nvm-windows
번역하면 nvm-windows를 사용하려면 관리자권한으로 실행해야 한다고 한다...
powershell을 관리자 권한으로 실행해서 nvm use 명령을 이용하니 정상적으로 변경이 된다
이렇게 node 버전관리 도구인 nvm을 설치해보았다
결론은 이렇다... 개발을 위해서는 윈도우가 아닌 linux나 mac을 쓰자....ㅠㅠㅠ
늘 느끼는 거지만 윈도우 환경설정 넘나 힘들다....