개요

  • NVM(Node Version Manager)은 Node.js의 여러 버전을 관리할 수 있는 도구
  • 본 문서는 Mac 환경에서 기존에 설치된 Node를 제거하고, NVM을 설치 및 사용하는 방법에 대해 안내
  • NVM을 사용하면 프로젝트마다 다른 Node.js 버전을 사용할 수 있어 개발 환경을 유연하게 관리 가능

Shortcut

아래는 본 문서에서 안내한 과정을 일괄 실행하는 스크립트 입니다. 아직 충분히 실험되지 않았기때문에 참고만 부탁드립니다.

#!/bin/bash

# NVM 버전 파라미터 처리
NVM_VERSION=${1:-$(curl -s https://api.github.com/repos/nvm-sh/nvm/releases/latest | grep 'tag_name' | cut -d '"' -f 4)}

# 환경 설정 파일 결정
if [ -f ~/.zshrc ]; then
  SHELL_CONFIG=~/.zshrc
elif [ -f ~/.bashrc ]; then
  SHELL_CONFIG=~/.bashrc
elif [ -f ~/.profile ]; then
  SHELL_CONFIG=~/.profile
else
  echo "환경 설정 파일을 찾을 수 없습니다. .zshrc, .bashrc, .profile 중 하나가 필요합니다."
  exit 1
fi

# NVM 및 Node.js 설치 여부 확인 및 삭제
# NVM 설치 디렉토리 확인 및 삭제
if [ -d "$HOME/.nvm" ]; then
  echo "NVM이 설치되어 있습니다. 삭제 중..."

  # NVM 환경 변수 설정
  export NVM_DIR="$HOME/.nvm"
  [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
  nvm deactivate
  nvm uninstall --lts
  nvm uninstall --latest-npm

  sed -i '' '/export NVM_DIR="\/Users\/[a-zA-Z0-9]*\/.nvm"/d' ~/.zshrc
  sed -i '' '/\[ -s "\$NVM_DIR\/nvm.sh" \] && \. "\$NVM_DIR\/nvm.sh"/d' ~/.zshrc
  sed -i '' '/\[ -s "\$NVM_DIR\/bash_completion" \] && \. "\$NVM_DIR\/bash_completion"/d' ~/.zshrc
  sed -i '' '/# This loads nvm/d' ~/.zshrc
  sed -i '' '/# This loads nvm bash_completion/d' ~/.zshrc
  unset -f nvm
  echo "NVM 삭제 완료."
else
  echo "NVM이 설치되어 있지 않습니다."
fi

# Node.js 설치 여부 확인 및 삭제
if command -v node > /dev/null 2>&1; then
  echo "Node.js가 설치되어 있습니다. 삭제 중..."
  sudo rm /usr/local/bin/npm
  sudo rm /usr/local/share/man/man1/node.1
  sudo rm /usr/local/lib/dtrace/node.d
  sudo rm -rf ~/.npm
  sudo rm -rf ~/.node-gyp
  sudo rm /opt/local/bin/node
  sudo rm /opt/local/include/node
  sudo rm -rf /usr/local/bin/node
  sudo rm -rf /opt/local/lib/node_modules
  sudo rm -rf $HOME/.npm
  sudo rm -rf /usr/local/bin/npm
  sudo rm -rf /usr/local/share/man/man1/node.1
  sudo rm -rf /usr/local/lib/dtrace/node.d
  echo "Node.js 삭제 완료."
else
  echo "Node.js가 설치되어 있지 않습니다."
fi

# NVM 설치
echo "NVM $NVM_VERSION 설치 중..."
curl -s -o- https://raw.githubusercontent.com/nvm-sh/nvm/$NVM_VERSION/install.sh | bash > /dev/null

# 환경 설정 파일 로드
source "$SHELL_CONFIG"

# 설치된 NVM 버전 확인
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

echo "설치된 NVM 버전:"
nvm --version

 

위 스크립트는 아래와 같이 사용 할 수 있습니다.

chmod +x ./install-nvm.sh
./install-nvm.sh # 최신버전설치
or
./install-nvm.sh v0.33.11  #0.33.11 설치

 

NVM 소개

  • NVM(Node Version Manager)은 Node.js 버전을 쉽게 설치하고 전환할 수 있도록 도와주는 도구
  • Node.js의 여러 버전을 동시에 관리할 수 있어, 다양한 프로젝트에서 필요한 Node.js 버전을 손쉽게 사용가능.

Node 삭제

Step 1. 아래 명령을 실행하여, 기존에 설치되어 있는 node.js를 삭제

brew uninstall --force node

 

Step 2. 아래 스크립트를 실행하여, 남아있는 Node.js 관련 파일을 삭제

sudo rm /usr/local/bin/npm
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
sudo rm -rf ~/.npm
sudo rm -rf ~/.node-gyp
sudo rm /opt/local/bin/node
sudo rm /opt/local/include/node
sudo rm –rf /usr/local/bin/node
sudo rm -rf /opt/local/lib/node_modules
sudo rm -rf $HOME/.npm
sudo rm -rf /usr/local/bin/npm
sudo rm -rf /usr/local/share/man/man1/node.1 
sudo rm -rf /usr/local/lib/dtrace/node.d

NVM 설치

NVM을 설치하려면 다음 단계를 따릅니다.

Step 1. NVM 설치 스크립트 실행

NVM 설치 스크립트를 실행합니다. 다음 명령어를 터미널에 입력합니다

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash

 

이 명령어는 NVM 설치 스크립트를 다운로드하여 실행합니다.

Step 3. NVM 환경 설정

설치가 완료되면, 터미널을 재시작하거나 다음 명령어를 실행하여 NVM 환경 설정을 로드합니다:

source ~/.zshrc
 
 

혹은 사용하는 쉘에 따라 ~/.bashrc, ~/.profile 등을 사용할 수 있습니다.

Node.js 설치 및 관리

NVM이 정상적으로 설치되었는지 확인하려면 다음 명령어를 입력합니다:

nvm --version

 

정상적으로 버전이 출력되면, NVM이 설치된 것입니다.

Step 1. Node.js 설치

NVM을 사용하여 특정 버전의 Node.js를 설치할 수 있습니다. 예를 들어, 최신 LTS(Long Term Support) 버전을 설치하려면 다음 명령어를 입력합니다:

nvm install --lts
 

특정 버전을 설치하려면:

nvm install 14.17.0

Step 2. Node.js 버전 전환

프로젝트마다 다른 Node.js 버전을 사용해야 할 경우, 다음 명령어를 통해 버전을 전환할 수 있습니다.

nvm use 14.17.0

프로젝트별 Node.js 버전 관리

NVM을 사용하면 프로젝트마다 다른 Node.js 버전을 사용할 수 있습니다. 이를 위해 프로젝트 폴더 내에 .nvmrc 파일을 생성하고, 파일 안에 원하는 Node.js 버전을 명시합니다.

Step 1. .nvmrc 파일 생성

프로젝트 폴더 내에 .nvmrc 파일을 생성하고, 파일 내용에 사용하고자 하는 Node.js 버전을 입력합니다:

14.17.0
 

Step 2. 프로젝트 폴더에서 Node.js 버전 설정

프로젝트 폴더로 이동한 후, 다음 명령어를 입력하여 .nvmrc 파일에 명시된 버전을 사용하도록 설정합니다:

nvm use
 

Alias 사용

NVM은 자주 사용하는 Node.js 버전을 쉽게 전환할 수 있도록 Alias 기능을 제공합니다. Alias를 사용하면 복잡한 버전 번호 대신 별명을 사용할 수 있습니다.

Step 1. Alias 생성

자주 사용하는 Node.js 버전에 Alias를 지정하려면 다음 명령어를 사용합니다:

nvm alias default 14.17.0

이 명령어는 default라는 Alias를 버전 14.17.0에 지정합니다.

Step 2. Alias 사용

Alias를 사용하여 Node.js 버전을 전환하려면 다음 명령어를 사용합니다:

nvm use default

이 명령어는 default로 지정된 Node.js 버전을 활성화합니다.

Step 2. 생성된 Alias 목록을 확인할 수 있습니다.

nvm alias
 

다양한 Alias 사용 사례

1. 특정 프로젝트별 Alias 생성

여러 프로젝트에서 각각 다른 Node.js 버전을 사용할 경우, 각 프로젝트에 맞는 Alias를 생성할 수 있습니다.

nvm alias project1 12.18.3
nvm alias project2 14.17.0 
nvm alias project3 16.13.0
 

이렇게 하면 프로젝트 디렉토리로 이동할 때마다 필요한 Node.js 버전을 쉽게 전환할 수 있습니다.

3. 최신 LTS 버전 Alias 생성

Node.js의 최신 LTS 버전을 항상 사용하고 싶다면, lts라는 Alias를 생성할 수 있습니다.

nvm alias lts 'lts/*'

이 Alias를 사용하면 항상 최신 LTS 버전으로 전환할 수 있습니다.

3. 팀 표준 버전 Alias 생성

팀 내에서 사용하는 표준 Node.js 버전을 Alias로 지정하여 팀원들이 쉽게 동일한 버전을 사용할 수 있도록 할 수 있습니다.

nvm alias team 14.17.0
 

팀원들은 nvm use team 명령어를 사용하여 동일한 버전을 사용할 수 있습니다.

NVM 삭제

NVM(Node Version Manager)을 완전히 제거하려면, NVM과 관련된 모든 설정과 설치된 Node.js 버전을 삭제해야 합니다. 다음 단계를 따라 NVM을 안전하게 삭제할 수 있습니다.

 

Step 1. NVM 비활성화

먼저, 현재 활성화된 NVM 환경을 비활성화해야 합니다. 이를 위해 다음 명령어를 실행합니다:

nvm deactivate

 

Step 2. 모든 LTS 버전의 Node.js 삭제

NVM을 통해 설치된 모든 LTS(Long Term Support) 버전의 Node.js를 삭제합니다. 다음 명령어를 실행하여 LTS 버전을 제거할 수 있습니다:

nvm uninstall --lts

Step 3. 최신 npm 버전의 Node.js 삭제

NVM을 통해 설치된 최신 npm 버전의 Node.js를 삭제합니다. 다음 명령어를 실행하여 최신 npm 버전을 제거할 수 있습니다:

nvm uninstall --latest-npm

Step 4. 환경 설정 파일에서 NVM 관련 설정 삭제

 NVM과 관련된 환경 설정을 쉘 설정 파일(.zshrc, .bashrc, .profile 등)에서 삭제합니다. 아래 예시는 .zshrc 파일에서 NVM 설정을 삭제하는 명령어입니다:

  sed -i '' '/export NVM_DIR="\/Users\/[a-zA-Z0-9]*\/.nvm"/d' ~/.zshrc
  sed -i '' '/\[ -s "\$NVM_DIR\/nvm.sh" \] && \. "\$NVM_DIR\/nvm.sh"/d' ~/.zshrc
  sed -i '' '/\[ -s "\$NVM_DIR\/bash_completion" \] && \. "\$NVM_DIR\/bash_completion"/d' ~/.zshrc
  sed -i '' '/# This loads nvm/d' ~/.zshrc
  sed -i '' '/# This loads nvm bash_completion/d' ~/.zshrc

Step 5. NVM 디렉토리 삭제

마지막으로 NVM 디렉토리를 삭제하여 NVM을 완전히 제거합니다. 다음 명령어를 실행합니다

rm -rf ~/.nvm

Step 6. 쉘 설정 파일을 다시 로드

source ~/.zshrc # 또는 사용 중인 쉘 설정 파일을 로드. 혹은 사용하는 쉘에 따라 ~/.bashrc, ~/.profile 등을 사용할 수 있습니다.

source ~/.zshrc

 

이 단계를 통해 NVM과 관련된 모든 파일과 설정을 완전히 삭제할 수 있습니다. 쉘 설정 파일을 다시 로드하거나 터미널을 재시작하여 변경 사항을 적용합니다.

 

결론

  • 이 문서에서는 Mac에서 NVM(Node Version Manager)을 사용하여 Node.js 버전을 관리하는 방법에 대해 안내
  • NVM을 설치하고, Node.js 버전을 설치 및 전환하며, 프로젝트별로 Node.js 버전을 설정하는 방법을 다룸.
  • NVM을 사용하면 다양한 프로젝트에서 필요한 Node.js 버전을 손쉽게 관리 가능

+ Recent posts