使用 NVM 切換 Node.js 版本

updated 2022-10-27: 更好的另一個選擇 Volta

Node.js 版本

Node.js major version 號為雙數,代表是 LTS 長期支援版本 (Long-Term Support)。
各版本的生命週期請參考這裡

nvm

nvm is a version manager for node.js, designed to be installed per-user, and invoked per-shell. nvm works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and windows WSL. 參考

安裝

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

使用

# 查看有哪些可供下載的 node.js 版本
nvm ls-remote

# 下載安裝 14 版本的 node.js
nvm install 18

# 或是指定更明確的 minor 版本號
nvm install 18.12.0

# 指定使用的 node 版本
nvm use 18

# 查看目前使用的 node 版本
node -v

# 設定預設的 node 版本
nvm alias default 18.12.0

試驗一些 v14, v16, v18 的差異功能

// node v14 還可以使用 process.binding("http_parser");到了 v16 已經 Deprecated
process.binding("http_parser");

// node v16 新加入了  ECMAScript RegExp Match Indices
const matchObj = /(Java)(Script)/d.exec('JavaScript');
console.log(matchObj.indices[0]);
console.log(matchObj.indices[1]);
console.log(matchObj.indices[2]);


// node v18 新加入了 fetch (experimental)
const get = async (url) => {
  const res = await fetch(url);
  if (res.ok) {
    const data = await res.json();
    console.log(data);
  }
};
get("https://official-joke-api.appspot.com/random_joke");