什麼是 nvm

nvm 的全名是 Node Version Manager。
nvm 可以用來安裝 NodeJS,如果有需求測試不同版本的話,也可以安裝多種版本、隨時切換不同版本的 NodeJS。


安裝 nvm

不建議使用 Homebrew,直接使用 cURL 安裝

由於 NodeJS 更新迅速,apt-get 官方的軟體清單可能會來不及放最新的版本,因此用 apt-get 安裝 NodeJS 可能會無法安裝到最新的版本。

Linux 還是 macOS(尤其是 macOS),建議盡量使用 nvm 來安裝 NodeJS,
第一個是它不會安裝在所有使用者,所以在操作的時候不用特別下 sudo 才能把套件裝在全局(global),
而且未來如果要安裝到較新版的 NodeJS,也可以直接以 nvm 安裝,不需要再去特別設定軟體清單。

註:Windows 使用者要改用 nvm-windows,是另外一個相容於這個套件的套件。
但我還是建議 Windows 使用者搭配 WSL 使用會比較方便。

前往 GitHub 上的 nvm 文件查看安裝步驟,在 MacOS 的終端機下輸入指令,執行完成指令後需要將終端機退出重開啟才可以使用 nvm。

NVM 官方建議直接使用 cURL 安裝或更新 nvm,不要用 Homebrew 因為不支援直接自動安裝,需要在另外處理 .bash_profile 檔。
資料來源:
macOS 安装 nvm 踩坑小记
Mac上使用nvm管理node版本

如果是使用 iTerm 使用 zsh 指令或是 macOS Catalina 系统會遇到 nvm: command not found 的回應,直接到 .zshrc 的 zsh 設定檔中加入 source ~/.bash_profile 的程式碼啟用 nvm 指令。

安裝完成後操作

原本電腦內就裝有 NodeJS 版號 v12.16.0

如果安裝過程沒問題,只要輸入指令 nvm 就會回應相關指令集。
nvm install stable 直接抓了線上目前的穩定版最新版 ( v14.13.1 版本)。
一開始的 nvm 裡面是沒有相關的 nodeJS 版本,需要指定下戴的版本裝入 nvm 中,這裡另選了 v12.16.0 同全域版本的 nodeJS 版號。
如果一開始有使用 NodeJS 官網的安裝包裝在全域下,就會是在 system 項目中。

下載完成後輸入 nvm list 會列出所有安裝進來的 nodeJS 版本。

要讓終端機直接開啟不使用全域環境下的 NodeJS,透過指令 nvm alias default 12.16.0,之後終端機開啟後都會一直定在 nvm 裡的 v12.16.0 版號上。

在 window 裡面原本有裝 NodeJS 是可以不用在裝 nvm 前移除,不過在裝完 nvm 後會無法使用,需要在透過 nvm 指令在裝一次 NodeJS。
資料來源:
Windows 10 安裝並使用 nvm 切換 NodeJS 版本


nvm 操作相關指令

  • nvm 列出所有的 nvm 相關指令。
  • nvm -h 列出所有指令選項。
  • nvm install stable 安装稳定版本。
  • nvm install <version> 安裝指定版本,可模糊安裝。
  • nvm uninstall <version> 刪除已安裝的指定版本,語法與 install 類似。
  • nvm use <version> 切換使用指定的版本 node。
  • nvm ls 列出所有安裝的版本。
  • nvm ls-remote 列出所有遠程服務器的版本(官方 node version list)。
  • nvm list available 列出線上的 NodeJS 版本 (限定 windows 指令)。
  • nvm current 顯示當前的版本。
  • nvm alias <name> <version> 給不同的版本號添加別名。
  • nvm unalias <name> 刪除已定義的別名。
  • nvm alias default <version> 設定預設的版本,這樣就算切換新視窗也不會改變設定。
  • nvm reinstall-packages <version> 在當前版本 node 環境下,重新全局安裝指定版本號的 npm 包。

參考資料

主要資料

Webpack 前端自動化開發超入門

其他資料

MAC系統使用Homebrew安裝nvm (指令集)