즐코

[node] node.js 삭제 후 nvm 설치하기 본문

환경설정

[node] node.js 삭제 후 nvm 설치하기

YJLEE_KR 2022. 11. 3. 23:24

node.js 로 fix된 버전을 까는 것보다 nvm으로 깔아서 프로젝트별로 노드 버전을 관리해주는 게 좋다.

집에서 할 땐 맥os환경에서 작업하고 회사에선 window에서 작업하니 두 os환경에서의 설치방법을 간단히 정리해둔다.

 

node.js가 깔린 상태에서 nvm을 설치하면 꼬이기 쉬우니 기존의 node.js를 전부 삭제해준다.

[ Mac OS ]

1/ 기존 node.js 삭제

맥은 설치는 쉬웠으나 기존 설치된 node 삭제과정이 좀 지저분하다! 

나같은 경우엔 아래 중 해당하지 않는 명령어들이 반이었는데 그래도 혹시 모르니 각 경로로 들어가서 node와 관련된건 다 지워주는 게 좋다.

sudo npm uninstall npm -g
sudo rm -rf /usr/local/lib/node 
sudo rm -rf /usr/local/lib/node_modules 
sudo rm -rf /var/db/receipts/org.nodejs.*
sudo rm -rf /usr/local/include/node 
sudo rm -rf /Users/내계정디렉토리/.npm
sudo rm /usr/local/bin/node
sudo rm /usr/local/share/man/man1/node.1

brew uninstall node

2/ nvm 설치

다 지웠으면 nvm을 설치해주자

brew install nvm

3/ nvm 환경변수 설정하기

늘 그렇듯 nvm 명령어 사용을 위해 환경변수를 등록해준다. 

사용 중인 쉘 종류마다 설정 파일 상에 아래 내용을 추가해준다.

# zsh
vi ~/.zshenv

# bash
vi ~/.bash_profile

난 zsh, bash 둘다 쓰므로 이 둘의 환경 설정 파일에 아래 내용을 추가해주었다.

export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"  # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

환경 변수 적용을 위해 source 명령어로 마무리해주기

# zsh 
source ~/.zshenv 

# bash
source ~/.bash_profile

 

[ Window OS ]

1/ 기존 node.js 삭제

간단하게 제어판 - 프로그램 제거 상에서 node.js를 삭제해주자

 

2/ nvm 설치

https://github.com/coreybutler/nvm-windows/releases 들어가서 Assets 상의 nvm-setup.zip 다운받아 설치

- 다운 받을 때 nvm 설치 위치를 C:\Users\A\AppData\Roaming\nvm” 대신 C:\Users\A\public\nvm 로 넣어줌

 

3/ nvm 환경변수 설정하기

- window는 환경 변수 설정을 위해 cmd 창에다가 아래 명령어를 쳐준다.

setx path "%PATH%;C:\Users\A\public\nvm”

- 내 pc > 고급 시스템 설정 > 시스템 속성 > 환경 변수 > 내 윈도우 계정에 대한 사용자 변수 중 Path를 더블클릭하면 환경변수가 추가되었음을 확인할 수 있다.

 

[ 공통 사항 ]

윈도우건 맥이건 둘 다 잘 설치됐는지 아래 과정대로 확인해주자

 

1. nvm 버전 확인해주기

nvm -v

2. nvm 으로 node 를 원하는 버전으로 설치

nvm install 10.16

3. 설치된 node 버전들 확인

nvm list

4. 설치된 node 버전 사용하기

nvm use 10.16

5. 노드 버전 잘 설정되었는지 확인

node -v

 

[  .nvmrc ]

보니까 .nvmrc 라는 파일을 생성해서 각 프로젝트별로 node 버전을 쉽게 관리할 수 있다고 한다.

 

1. 프로젝트 루트 폴더에 .nvmrc 파일을 생성하고 그 안에 버전을 그냥 적어준다.  10.16 이렇게

2. .nvmrc 가 존재하는 디렉토리 상에서 아래 명령어로 node 버전이 로컬에 존재하는지 확인

nvm use

3. 로컬에 존재하지 않을 경우, 아래 명령어로 node 버전 설치

nvm install

[  .nvmrc 에 따라 자동으로 프로젝트별 노드 버전 설정하기]

출처[https://yunbo96.tistory.com/95]

회사나 개인적인 프로젝트를 하다보면 매 프로젝트마다 버전이 다른데, 그러면 매번 프로젝트 실행때마다 터미널 상에 nvm use 버전 명령어를 쳐줘야했다. 그게 매우 귀찮아졌고, 찾아보니 아래와 같은 명령어를 터미널 환경설정 파일에 넣어주고 저장하면 된다고 한다.

 

 

난 주로 zsh 터미널을 사용하기 때문에 .zshrc 파일상에 아래 코드를 넣어줬다.

# place this after nvm initialization! (프로젝트별 노드 버전 자동 설정)
autoload -U add-zsh-hook
load-nvmrc() {
  local node_version="$(nvm version)"
  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" != "$node_version" ]; then
      nvm use
    fi
  elif [ "$node_version" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use defaults
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

그리고 각 프로젝트마다 .nvmrc 파일을 추가해주니, 프로젝트를 오픈할때마다 아래와 같이 자동으로 버전을 바꿔줬다!

 

 

Comments