Visual Studio Code 에서 nvm 으로 특별한 Node.js 버전 실행하기

Visual Studio Code 에서 nvm 으로 특별한 Node.js 버전 실행하기

연구소에서 Node.js 를 사용하여 여러 프로젝트를 진행하고 있는데, Node.js 개발 시기와 프로젝트 환경에 따라 다양한 버전을 사용하고 있다.

nvm(Node Version Manager)를 사용하면 한 컴퓨터에서 다양한 Node.js 버전을 쉽게 사용할 수 있다. 프로젝트 디렉토리에 .nvmrc 파일에 Node.js 버전을 저장하고 nvm use 명령어로 간단하게 Node.js 버전을 변경하여 프로젝트 개발을 진행할 수 있다.

.nvmrc 파일 내용은 다음과 같다.

16.19.1

이렇게 저장된 Node.js 버전은 다음 nvm 명령어로 노드 버전을 바로 변경할 수 있다.

nvm use

만약 내 컴퓨터에 해당 Node.js 버전 바이너리 파일을 다운받아서 설치한적이 없다면 nvm 명령어로 간단히 설치할 수 있다.

nvm install

Visual Studio Code 에서 Node.js 프로젝트를 개발할 경우 Visual Studio Code의 Terminal 을 사용하여 개발하고 있는 프로젝트 디렉토리 안에서 nvm 또는 node 명령어를 실행할 수 있다.

Node.js 에서는 실행과 디버깅을 위한 환경을 제공하고 있는데 왼쪽 패널에서 Run & Debug 아이콘을 클릭하면 왼쪽 패널이 디버거 환경으로 변경된다.  RUN AND DEBUG 옆에 Launch Program 을 선택하여 실행하면 프로젝트 디렉토리 내 lauch.json 파일이 생성되는데 내용은 다음과 같다.

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "${workspaceFolder}/app.js",
        }
    ]
}

launch.json 파일은 프로그램을 실행 또는 디버깅하기 위한 환경을 설정하는 파일이다. 기본으로 만들어진 launch.json 파일은 시스템 PATH 에 등록된 Node.js 의 node 파일을 실행하기 때문에 기본으로 만들어진 파일을 바로 실행하면 에러가 발생한다.

우리는 nvm 을 이용하여 16.19.1 버전을 사용하기로 했다. 그래서 launch.json 파일에 다음 내용으로 수정한다.

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "${workspaceFolder}/app.js",
            "runtimeVersion": "16.19.1"
        }
    ]
}

runtimeVersion 을 이용하여 우리가 nvm에서 지정한 16.19.1 버전을 사용하여 프로그램을 실행할 수 있다.