極簡 nvm 使用指南
nvm 是 Node.js 的多版本管理器,當你的開發環境有多個不同時代的 Node.js 專案、橫跨不同版次的 Node.js 時,nvm 就派的上用場。
Node.js 的版本管理器不只有 nvm,由於 nvm 只支援 macOS 與 Linux,在 Windows 下,改用 NVS 是更好的選擇。(也可參閱另一篇〈在 Windows 建置以 Visual Studio 為基礎的 Python / Node.js 開發環境〉
nvm 的問題是,文件與說明又臭又長,其實 80% 的人只用的到 20% 的功能,所以這裡寫下個人常用到的功能與指令。
更新 nvm
更新 nvm 與從零安裝 nvm 是同一條命令:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
這個安裝腳本會自行判斷是新裝還是更新。
要注意網址內有 nvm 的版號,更新 nvm 時要修改為最新的 nvm 版號。
更新 npm
npm 是 Node.js 的套件管理器,它也是需要更新的,nvm 有專門更新 npm 的指令:
nvm install-latest-npm
列出系統內各 Node.js 版本
nvm ls
以本人的環境為例,有列出下列版本:
v14.18.1 -> v16.13.1 default -> 16.13.1 (-> v16.13.1) iojs -> N/A (default) unstable -> N/A (default) node -> stable (-> v16.13.1) (default) stable -> 16.13 (-> v16.13.1) (default) lts/* -> lts/gallium (-> v16.13.1) 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.7 (-> N/A) lts/fermium -> v14.18.1 lts/gallium -> v16.13.1
看似很亂,其實大部份情況下只要關注那 default
的版號即可。
那些 default
、iojs
等等的是 alias,可以理解為標籤,default
標定的版號就是個人帳戶下預設的 Node.js 版號。
列出可安裝的 Node.js LTS 版本
nvm ls-remote --lts
偶數的 LTS 版本們有著更長的維護期,建議都使用 LTS 版本,避免追著版號跑的窘境發生。
安裝 Node.js
安裝目前的 16.13.1 LTS 版,並且設為預設版次:
nvm install 16.13.1 --default
建議都使用 LTS 版本,避免追著版號跑的窘境發生。
設定預設版本
同樣的以 16.13.1 LTS 版為例:
nvm alias default 16.13.1
為專案指定 Node.js 版本
在專案的資料夾內,放一個 .nvmrc 檔案,在裡面寫下該專案的 Node.js 版號,例如某專案要用 16.13:
16.13
進入該專案資料夾後,執行 nvm use
即會自動切換成 .nvmrc 指定的版本。
如果在安裝 nvm 時,有設定好與 shell 的整合的話,應該會自動幫我們做 nvm use
的動作。