- 과거 브라우저에만 사용 가능했던 자바스크립트를 브라우저 밖(서버나 로컬)에서도 실행 가능하도록 한 자바스크립트 런타임 환경이다.
- node package manager의 약자로, Node.js에서 사용되는 여러 패키지들을 관리하기 위한 시스템이다.
- node.js를 설치하면 자동으로 설치된다.
- Node.js의 버전 관리자이다. (npm 버전 관리 X)
- 같은 시스템 내에서 여러 가지 Node.js 버전을 관리할 수 있도록 해준다.
nvm과 Node.js가 설치된 상태에서, 터미널에서 nvm ls 명령어를 통해 현재 설치된 Node.js의 버전을 확인할 수 있다.
❯ nvm ls
-> v18.20.8
v20.19.2
system
default -> 18 (-> v18.20.8)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.19.2) (default)
stable -> 20.19 (-> v20.19.2) (default)
lts/* -> lts/jod (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.20.8
lts/iron -> v20.19.2
lts/jod -> v22.16.0 (-> N/A)
nvm ls 명령어를 실행하면 위와 같은 메시지를 확인할 수 있다.
-> v18.20.8
v20.19.2
system
v18.20.8는 현재 사용되고 있는 Node.js 버전이고, v20.19.2는 현재 내 컴퓨터에 설치되어 있지만 사용되고 있지 않은 버전이며, system은 내 컴퓨터(운영체제)에 기본적으로 설치되어 있는 node.js 버전을 말한다.default -> 18 (-> v18.20.8)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.19.2) (default)
stable -> 20.19 (-> v20.19.2) (default)
default는 사용자가 nvm alias default [버전명]으로 디폴트로 설정한 노드의 버전이다. 따라서 nvm use default를 실행하거나 쉘을 새로 열면 자동으로 v18.20.8 버전이 선택됨을 의미한다.
iojs는 io.js 버전 중 가장 최신 버전을 가리키며, 노드의 unstable 버전인 v0.12 의 포크라고 한다. 한때는 Node.js 와 io.js 로 나눠졌던 때도 있었지만, 지금은 하나로 다시 합쳐졌기에 특별히 사용할 일은 없을 것 같다.
unstable은 unstable Node.js중 가장 마지막 버전을 가리킨다. 노드는 1.0 이후로 모든 버전이 stable이다. 따라서 위의 경우에는 설치되어 있지 않아 N/A로 표시되지만, 만약 설치되어 있다면 0.11과 같은 버전이 표시될 수 있다.
N/A는 Not Applicable의 약자로, 그 버전이 내 컴퓨터에 설치되어 있지 않음을 뜻한다.
node는 일반적으로 가장 최신 버전을 가리키고, stable은 최신 안정 버전을 가리킨다.
lts/* -> lts/jod (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.20.8
lts/iron -> v20.19.2
lts/jod -> v22.16.0 (-> N/A)
lts/*는 모든 LTS 버전 중 가장 최신 버전을 가리킨다. 참고로 LTS는 long-term-support의 약자로 해당 버전은 30개월동안 치명적인 버그들은 픽스됨을 보장한다는 의미가 있어 LTS 버전을 사용할 것을 권장하고 있다.
나머지 화학 원소 기호명이 붙어있는 버전명등은 각 라인에서 가장 최신 버전을 가리킨다.