嗨,各位開發者朋友們!今天我想跟大家分享一下 Node.js 的安裝方式以及如何有效管理不同版本的 Node.js。作為一個經常需要在不同專案間切換的工程師,這些知識對我來說可是相當重要的,相信對你們也會有幫助!
Homebrew vs 官方安裝包:怎麼選?
首先,讓我們來看看 macOS 上兩種主流的 Node.js 安裝方式:Homebrew 安裝和官方安裝包。它們各有什麼優缺點呢?
Homebrew 安裝的優勢
使用 brew install node
安裝 Node.js 有這些好處:
- 依賴管理超方便:Homebrew 會自動處理所有相關依賴,不用自己操心
- 更新超簡單:只需一個
brew upgrade nodejs
命令就能更新到最新版本 - 環境變數自動配置:不用自己去調整 PATH 之類的環境變數
- 卸載乾淨利落:
brew uninstall nodejs
就能完全移除,不留垃圾檔案
缺點就是不太容易管理多個 Node.js 版本,這時候就需要額外的工具了(後面會講到)。
官方安裝包的特色
從 Node.js 官網下載安裝包(.pkg 或 .msi 檔案)安裝:
- 過程直觀:點幾下滑鼠就能完成,對命令行不熟悉的人很友好
- 安裝選項自由度高:可以選擇安裝位置和組件
- 版本明確:你知道自己裝的就是官方釋出的特定版本
不過缺點也很明顯:
- 更新麻煩:每次更新都需要重新下載安裝包
- 卸載較複雜:需要手動清理安裝檔案
- 多版本管理困難:官方安裝包預設不支援同時安裝多個版本
NVM:Node.js 版本管理神器
有時候,我們需要在不同專案間切換 Node.js 版本,這時候 NVM(Node Version Manager)就成了救星!
安裝 NVM
在 macOS 或 Linux 上,打開終端機執行以下命令:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
或者:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
Windows 用戶則需要使用 nvm-windows,可從以下網址下載: https://github.com/coreybutler/nvm-windows/releases
NVM 日常操作指南
安裝好 NVM 後,就可以開始使用這些實用命令:
查看可用的 Node.js 版本
nvm ls-remote
這會列出所有可安裝的 Node.js 版本,列表很長,慢慢滾動找你需要的版本吧!
安裝 Node.js
# 安裝特定版本
nvm install 18.17.1
# 安裝最新的 LTS(長期支援)版本
nvm install --lts
# 安裝最新版本
nvm install node
查看已安裝的版本
nvm ls
這會顯示你電腦上已經安裝了哪些 Node.js 版本。
切換使用的版本
# 切換到指定版本
nvm use 18.17.1
# 切換到 LTS 版本
nvm use --lts
# 切換到最新版本
nvm use node
設定默認版本
nvm alias default 18.17.1
這樣每次開啟新的終端機視窗時,都會自動使用這個版本。
卸載不需要的版本
nvm uninstall 16.20.0
進階技巧
專案專用版本
在專案根目錄建立一個 .nvmrc
檔案,內容只需寫入版本號:
18.17.1
然後在這個目錄中執行:
nvm use
NVM 會自動讀取 .nvmrc
檔案並切換到對應版本。這樣每個專案可以使用不同的 Node.js 版本,再也不用擔心版本衝突了!
臨時執行特定版本
nvm exec 16.20.0 node app.js
這會用 16.20.0 版本的 Node.js 執行 app.js,不影響目前使用的版本。
切換回系統安裝的 Node.js
nvm use system
如果你之前已經用其他方式安裝了 Node.js,可以用這個命令切換回去。
疑難排解
使用 NVM 時可能會遇到一些問題,這邊提供幾個常見問題的解決方法:
- 安裝後找不到 nvm 命令:重新開啟終端機,或執行
source ~/.bashrc
(使用 bash 的話)或source ~/.zshrc
(使用 zsh 的話) - 切換版本後,node -v 仍顯示舊版本:檢查 PATH 環境變數,確保 NVM 的路徑在前面
- Windows 路徑問題:在 Windows 上安裝 NVM 時,避免安裝在含有空格的路徑中
總結
選擇 Homebrew 還是官方安裝包,主要取決於你的使用習慣和需求。如果你需要同時管理多個 Node.js 版本,NVM 絕對是你的不二之選。
希望這篇文章對你有所幫助!如果有任何問題,歡迎在評論區留言討論。