카테고리 없음

window 환경에서 프로젝트마다 node 버전 다르게 설정하기

단추언니 2024. 9. 4. 16:33
반응형

진행중인 프로젝트의 node 버전을 맞춰놨었는데 새 프로젝트에서는 다른 버전의 node가 필요한 상황이었다.

구글링을 해봤는데 대부분 mac환경에서 node버전 자동화 하는 법을 올려두고있어 기록용으로 남겨둔다.

나는 bash를 사용하고 있다.

1. 사용하고자 하는 각 프로젝트의 node version을 설치한다.

https://nodejs.org/en

나는 필요한 버전이 18.14.2 와 20.17.0 버전이 필요해서 node 설치 후 npm i <version> 해줬다.

 

2. 각 프로젝트의 루트 디렉토리에 .nvmrc 파일을 만든다

// 1번 프로젝트의 .nvmrc
18.14.2

// 2번 프로젝트의 .nvmrc
20.17.0

nvmrc파일 안에 사용하려는 버전을 입력해야 한다.

 

3. bashrc 설정

나는 bash를 사용하고 있기 때문에 bashrc를 설정해 준다

nano ~/.bashrc

bashrc파일을 열고 nvm_use함수를 입력해준다

# Function to automatically use the Node version specified in .nvmrc
function nvm_use() {
    local nvmrc_path
    nvmrc_path=$(pwd)/.nvmrc

    # Look for .nvmrc in the current directory or any parent directory
    while [ ! -f "$nvmrc_path" ] && [ "$nvmrc_path" != "/" ]; do
        nvmrc_path=$(dirname "$nvmrc_path")/.nvmrc
    done

    if [ -f "$nvmrc_path" ]; then
        local version
        version=$(cat "$nvmrc_path")

        if [ "$(nvm current)" != "$version" ]; then
            echo "Switching to Node.js version: $version"
            nvm use "$version"
        fi
    fi
}

# Call nvm_use function whenever the shell starts
nvm_use

위의 함수 입력 후 ctrl + o (저장) -> enter -> ctrl + x (나가기)

 

.bash_profile가 없다는 에러가 날 수 있는데 그냥 하나 만들어주면 된다.

 

4. 파일을 저장한 후, 다음 명령어를 실행해 설정을 적용한다.

source ~/.bashrc

설정을 저장해 주지 않으면 에러가 발생할 수 있다.

 

5. 터미널 재실행 후 확인

여기서 exit status 5 따위의 에러가 발생하면 터미널을 관리자 권한으로 실행해주면 된다. 

이제 프로젝트를 각각 실행해 보면 Swiching to Node.js version: ${version} 의 메시지가 뜨며 노드 버전이 스위칭 된 것을 볼 수 있다!

 

nvm ls 해보면 어떤 노드 버전을 사용하고 있는지 확인 가능하다.

 

반응형