# NVM-Windows 使用指南
## 簡介
NVM-Windows 的主要功能是讓使用者在同一台電腦上管理和切換多個版本的 Node.js。這對於開發者來說非常有用,因為不同的專案可能需要使用不同版本的 Node.js。
## 安裝步驟
1. 進入 [nvm-windows/github](https://github.com/coreybutler/nvm-windows)
2. 捲動到下方看到 NVM for Windows
3. 點擊 Download Now!

4. 依照最新版本下載:

5. 下載後,一路按下一步直到安裝完成
## 基本使用
### 確認安裝版本
開啟命令提示字元(cmd),輸入:
```
nvm -v
```

### 查看可用的 Node.js 版本
```
nvm list available
```

### 安裝指定版本的 Node.js
可以依照自己公司所使用的專案需求,來安裝指定版本的 Node.js:
```
nvm install 版本號
```
例如:`nvm install 20.19.0`

### 切換使用的 Node.js 版本
```
nvm use 版本號
```
例如:`nvm use 20.19.0`

### 確認當前 Node.js 與 npm 版本
```
node -v
npm -v
```

> **說明**:
> - **Node.js**:一個開源、跨平台的 JavaScript 執行環境,它讓開發者能夠在伺服器端執行 JavaScript 程式碼。在 Node.js 出現之前,JavaScript 主要只能在網頁瀏覽器中運行。
> - **npm**:Node Package Manager 的縮寫,它是 Node.js 的預設套件管理工具。
### 卸載 Node.js 版本
```
nvm uninstall 版本號
```
例如:`nvm uninstall 22.14.0`

### 什麼是npm i?
1. 用 `npm i` 安裝的模組無法用 `npm uninstall` 刪除,用 `npm uninstall i` 才卸載掉。
2. `npm i` 會幫助檢測與當前 Node 版本最匹配的 npm 包版本號,並匹配出相互依賴的 npm 包應該提升的版本號。
3. 部分 npm 包在當前 Node 版本下無法使用,必須使用建議版本。
4. 安裝報錯時必定會出現 npm-debug.log 文件,而 `npm i` 不一定會出現。
## 常用指令
### 版本管理與安裝
- `nvm list` 或 `nvm ls` - 列出所有已安裝的 Node.js 版本
- `nvm list available` - 列出可供安裝的 Node.js 版本
- `nvm install latest` - 安裝最新版本的 Node.js
- `nvm install lts` - 安裝最新的 LTS(長期支援,Long Term Support)版本
### 使用與切換版本
- `nvm use <version>` - 切換到指定版本的 Node.js,例如 `nvm use 14.17.0`
- `nvm current` - 顯示當前使用的 Node.js 版本
### 設定預設版本
- `nvm alias default <version>` - 設定預設使用的 Node.js 版本
- `nvm alias <name> <version>` - 為特定版本創建一個別名
### 路徑管理
- `nvm root` - 顯示 nvm 安裝路徑
- `nvm node_mirror <url>` - 設定 Node.js 鏡像
- `nvm npm_mirror <url>` - 設定 npm 鏡像
### 其他操作
- `nvm version` - 顯示 nvm-windows 的版本
- `nvm on` - 啟用 Node.js 版本管理
- `nvm off` - 停用 Node.js 版本管理
- `nvm proxy [url]` - 設定代理伺服器
- `nvm arch [32|64]` - 顯示或設定 Node.js 架構(32位或64位)
## 常見使用情境
1. 安裝並切換到特定版本:
```
nvm install 20.19.0
nvm use 20.19.0
```
2. 設定預設版本:
```
nvm alias default 16.14.0
```
3. 在多個專案間快速切換 Node.js 版本:
```
cd 專案A
nvm use 20.19.0
cd 專案B
nvm use 20.18.3
```
## 注意事項
在使用 `nvm use` 時必須指定版本號,否則會出現 "activation error: A version argument is required but missing" 的錯誤。

透過 NVM-Windows,你可以在 Windows 系統上有效地管理多個 Node.js 版本,以滿足不同專案的需求。
## Reference
[@ray102467-nvm-windows 管理 Windows Node.js 版本](https://medium.com/@ray102467/nvm-windows-%E7%AE%A1%E7%90%86-windows-node-js-%E7%89%88%E6%9C%AC-68d789cf84d7)