= NodeJS Version Manager
nvm install 18
nvm install 20
nvm use 18 # Node 18로 전환
nvm use 20 # Node 20으로 전환
이런식으로 여러 버전을 설치할 수가 있다.
그런데 문제는 버전을 바꿀 때만 nvm use를 사용해주면 되는 게 아니라 터미널을 열 때마다 그 터미널에서 어떤 버전의 node를 쓸 지 매번 nvm use를 해줘야 한다.
그래서
nvm alias default lts/*라는 코드를 추가해두면 터미널을 열 때마다 use를 사용하지 않고 항상 기본적으로 lts 버전의 node를 불러올 수 있도록 활성화한다.
그런데 또 문제는 그럼 lts버전이 바뀌면 불러오는 버전도 바뀌어서 기존 프로젝트에서의 일부 패키지나 native 모듈(node-gyp 등)이 깨질 수 있다.
특히 협업 프로젝트나 배포 서버 환경에서는 치명적인 버전 불일치가 날 수도 있음
그래서
nvm alias default 20이런 식으로 현재 쓰는 LTS버전을 명시해서 입력해둬야함
nvm을 통해 node의 버전관리를 쉽게 할 수 있다.
그런데 node16버전 이상부터는 node를 설치할 때 corepack이라는 것도 딸려온다. 여기 안에는 pnpm 등이 들어있어서 pnpm을 전역적으로 설치하지 않아도 되고 다음 코드와 같이 활성화시키는 방법으로 사용할 수 있다/
corepack enable
corepack prepare pnpm@9.12.3 --activate //예시 버전
버전을 바꿀 때마다 한 번씩 위 코드를 입력해줘야 한다. 이러면 pnpm install등 pnpm을 전역설치 없이 사용할 수 있다.
또한 노드 버전을 바꾸는 게 아니라 프로젝트에 따라 pnpm버전만 바꿔야할 때도 있다. 이럴 때는
corepack prepare pnpm@<그 프로젝트 버전> --activate
해주면 된다.