# Node.js 安裝與管理指南
本指南說明如何在不同作業系統上安裝和管理 Node.js 版本。
---
## 安裝方式比較
| 方式 | 優點 | 缺點 | 適合對象 |
|------|------|------|---------|
| **官網安裝** | 簡單快速,一鍵安裝 | 無法輕鬆切換版本 | 初學者、單一專案 |
| **NVM 安裝** | 可管理多個版本,輕鬆切換 | 需要學習指令 | 多專案開發者 |
**建議:** 如果需要在不同專案間切換 Node.js 版本,推薦使用 NVM。
---
## 方法一: 官網直接安裝
### 下載與安裝
1. 前往 [Node.js 官方網站](https://nodejs.org/zh-tw)
2. 選擇版本:
- **LTS (Long Term Support)**: 長期支援版,穩定性高 ✅ 推薦
- **Current**: 最新功能版,嘗鮮用
3. 下載對應作業系統的安裝檔
4. 執行安裝程式,按照步驟完成安裝
### 驗證安裝
```bash
# 檢查 Node.js 版本
node -v
# 檢查 npm 版本
npm -v
```
**優點:**
- ✅ 安裝簡單,適合初學者
- ✅ 官方提供,安全可靠
**缺點:**
- ❌ 無法同時管理多個版本
- ❌ 升級或降版較麻煩
---
## 方法二: 使用 NVM 安裝 (推薦)
NVM (Node Version Manager) 可以在同一台電腦上安裝和管理多個 Node.js 版本。
---
### 安裝 NVM
#### macOS / Linux
**步驟 1: 執行安裝腳本**
```bash
# 使用 curl 安裝
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 或使用 wget 安裝
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
```
**步驟 2: 設定環境變數**
安裝腳本會自動將配置寫入 shell 設定檔,但如果沒有自動寫入,需手動加入:
```bash
# 1. 確認你使用的 shell
echo $SHELL
# 2. 根據 shell 類型編輯對應的設定檔
# 如果是 bash (輸出 /bin/bash)
nano ~/.bashrc
# 或
nano ~/.bash_profile
# 如果是 zsh (輸出 /bin/zsh) - macOS 預設
nano ~/.zshrc
```
**步驟 3: 在設定檔中加入以下內容**
```bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # 載入 nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # 載入 nvm bash_completion
```
**步驟 4: 重新載入設定**
```bash
# bash
source ~/.bashrc
# zsh
source ~/.zshrc
```
**步驟 5: 驗證安裝**
```bash
nvm --version
# 應該顯示版本號,例如: 0.39.0
```
#### Windows
**步驟 1: 下載安裝程式**
1. 前往 [nvm-windows Releases](https://github.com/coreybutler/nvm-windows/releases)
2. 下載最新版本的 `nvm-setup.exe`
**步驟 2: 執行安裝**
1. 執行下載的 `nvm-setup.exe`
2. 按照安裝精靈完成安裝
3. 安裝程式會自動設定環境變數
**步驟 3: 以系統管理員身分開啟終端機**
- **命令提示字元 (CMD)**: 右鍵 → 以系統管理員身分執行
- **PowerShell**: 右鍵 → 以系統管理員身分執行
**步驟 4: 驗證安裝**
```bash
nvm version
# 應該顯示版本號,例如: 1.1.11
```
**注意:** Windows 版本使用 `nvm version` 而非 `nvm --version`
---
## NVM 常用指令
### macOS / Linux
| 功能 | 指令 | 說明 |
|------|------|------|
| 列出可安裝版本 | `nvm ls-remote` | 列出所有可安裝的 Node.js 版本 |
| 列出特定版本 | `nvm ls-remote 18` | 列出所有 18.x 版本 |
| 安裝最新 LTS 版 | `nvm install --lts` | 安裝最新的 LTS 版本 |
| 安裝指定版本 | `nvm install 18.17.0` | 安裝特定版本 |
| 使用指定版本 | `nvm use 18.17.0` | 切換到指定版本 |
| 使用最新 LTS 版 | `nvm use --lts` | 切換到最新 LTS 版本 |
| 列出已安裝版本 | `nvm ls` | 顯示本機已安裝的版本 |
| 查看當前版本 | `nvm current` | 顯示目前使用的版本 |
| 設定預設版本 | `nvm alias default 18.17.0` | 設定開啟終端機時的預設版本 |
| 解除安裝版本 | `nvm uninstall 16.0.0` | 移除指定版本 |
---
### Windows
| 功能 | 指令 | 說明 |
|------|------|------|
| 列出可安裝版本 | `nvm list available` | 列出可安裝的版本 |
| 安裝指定版本 | `nvm install 18.17.0` | 安裝特定版本 |
| 使用指定版本 | `nvm use 18.17.0` | 切換到指定版本 |
| 列出已安裝版本 | `nvm list` | 顯示本機已安裝的版本 |
| 查看當前版本 | `node -v` | 顯示目前使用的版本 |
| 解除安裝版本 | `nvm uninstall 16.0.0` | 移除指定版本 |
---
## 實用範例
### 範例 1: 安裝並使用最新 LTS 版本
```bash
# macOS/Linux
nvm install --lts
nvm use --lts
nvm alias default --lts
# Windows
nvm list available
nvm install 20.11.0 # 根據顯示的 LTS 版本號安裝
nvm use 20.11.0
```
---
### 範例 2: 為不同專案使用不同版本
```bash
# 專案 A 使用 Node 16
cd ~/project-a
nvm use 16
# 專案 B 使用 Node 18
cd ~/project-b
nvm use 18
# 確認當前版本
node -v
```
---
### 範例 3: 使用 .nvmrc 自動切換版本
在專案根目錄建立 `.nvmrc` 檔案:
```
18.17.0
```
進入專案目錄時執行:
```bash
nvm use
# 輸出: Found '/path/to/project/.nvmrc' with version <18.17.0>
# Now using node v18.17.0
```
---
### 範例 4: 安裝並測試多個版本
```bash
# 安裝多個版本
nvm install 16.20.0
nvm install 18.17.0
nvm install 20.11.0
# 列出已安裝的版本
nvm ls
# 測試不同版本
nvm use 16 && node -v
nvm use 18 && node -v
nvm use 20 && node -v
```
---
## 版本選擇建議
### Node.js 版本說明
| 版本類型 | 說明 | 更新頻率 | 建議用途 |
|---------|------|---------|---------|
| **LTS** | 長期支援版 | 每 6 個月 | ✅ 生產環境、企業專案 |
| **Current** | 最新功能版 | 每月 | 實驗、學習新功能 |
| **Maintenance** | 維護版 | 僅安全更新 | 舊專案維護 |
**查看版本支援狀態:** [Node.js Release Schedule](https://github.com/nodejs/release#release-schedule)
---
## 常見問題
### Q: Windows 需要以系統管理員身分執行嗎?
A: 是的!使用 `nvm install` 和 `nvm use` 時,必須以系統管理員身分執行終端機。
---
### Q: 切換版本後全域安裝的套件消失了?
A: 這是正常的!每個 Node.js 版本有獨立的全域套件。
**解決方法:**
```bash
# 在新版本重新安裝全域套件
npm install -g npm yarn pnpm
```
或者每個專案使用本地安裝 (推薦):
```bash
npm install --save-dev 套件名稱
```
---
### Q: 如何更新 NVM 本身?
A:
**macOS/Linux:**
```bash
# 重新執行安裝腳本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
```
**Windows:**
- 下載最新版本的安裝程式重新安裝
---
### Q: 專案應該使用哪個 Node.js 版本?
A:
1. 查看專案的 `package.json`:
```json
{
"engines": {
"node": ">=18.0.0"
}
}
```
2. 查看專案的 `.nvmrc` 檔案
3. 查看專案文檔的建議版本
4. 若無指定,使用最新 LTS 版本
---
## 進階技巧
### 1. 快速切換常用版本
```bash
# 建立版本別名
nvm alias work 18.17.0
nvm alias personal 20.11.0
# 使用別名
nvm use work
nvm use personal
```
---
### 2. 在 package.json 中指定版本
```json
{
"name": "my-project",
"version": "1.0.0",
"engines": {
"node": ">=18.0.0 <19.0.0",
"npm": ">=9.0.0"
}
}
```
搭配工具檢查:
```bash
npm install -g check-engine
check-engine
```
---
## 解除安裝
### 官網安裝版
**macOS:**
```bash
sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}
```
**Windows:**
- 控制台 → 程式集 → 解除安裝 Node.js
---
### NVM 版本
```bash
# 解除安裝特定 Node 版本
nvm uninstall 16.20.0
# 完全移除 NVM (macOS/Linux)
rm -rf ~/.nvm
# 並從 .bashrc 或 .zshrc 移除 NVM 相關設定
# 完全移除 NVM (Windows)
# 執行 NVM 解除安裝程式
```
---
## 參考資源
- [Node.js 官方網站](https://nodejs.org/zh-tw)
- [NVM GitHub (macOS/Linux)](https://github.com/nvm-sh/nvm)
- [NVM Windows GitHub](https://github.com/coreybutler/nvm-windows)
- [Node.js 版本支援時程](https://github.com/nodejs/release#release-schedule)
- [npm 官方文檔](https://docs.npmjs.com/)
---