what is FVM?
FVM(Flutter Version Management) 是一個(gè)用于管理多個(gè) Flutter SDK 版本的工具,類似于 Node.js 開(kāi)發(fā)者常用的 NVM。
- 官網(wǎng):https://fvm.app
- GitHub:https://github.com/leoafarias/fvm
解決了什么問(wèn)題?
- 不同項(xiàng)目需要不同 Flutter 版本
- 全局只有一個(gè)版本,切換麻煩
- 團(tuán)隊(duì)成員版本不一致導(dǎo)致構(gòu)建失敗
安裝 FVM
macOS / Linux
brew install fvm
Windows(需要先安裝 Dart)
dart pub global activate fvm
安裝完成后,確保將 Dart 全局 bin 目錄加入 PATH。
快速上手
1. 安裝指定版本
fvm install 3.24.0
fvm install 3.19.0
fvm install xxxx
2. 在項(xiàng)目中使用和全局使用
## 項(xiàng)目切換
cd /項(xiàng)目目錄
fvm use 3.24.0
執(zhí)行后會(huì)自動(dòng)生成 .fvm 配置文件和 fvm_config.json。
## 全局切換
fvm use 3.24.0 --global
| 對(duì)比項(xiàng) | fvm use X --global |
fvm use X |
|---|---|---|
| 作用范圍 | 整臺(tái)機(jī)器 | 當(dāng)前項(xiàng)目 |
| 生成文件 | ~/.fvm/ |
./.fvm/ |
| Git 管理 | ? 不提交 | ? 可以提交 |
| 優(yōu)先級(jí) | 低(被項(xiàng)目配置覆蓋) | 高 |
最佳實(shí)踐:個(gè)人開(kāi)發(fā)用 --global不用管的那么嚴(yán)格不會(huì)污染項(xiàng)目代碼,團(tuán)隊(duì)項(xiàng)目不帶 --global 并提交配置,還是嚴(yán)格一些好。
3. 運(yùn)行 Flutter 命令
# 通過(guò) fvm 調(diào)用(推薦)
fvm flutter run
fvm flutter build apk
# 或激活全局版本
fvm use 3.24.0 --global
4. 查看已安裝版本
fvm list
輸出示例:
Cached versions:
3.24.0
3.19.0
團(tuán)隊(duì)協(xié)作最佳實(shí)踐
1. 提交 FVM 配置到 Git
在項(xiàng)目根目錄執(zhí)行:
fvm use 3.24.0
git add .fvm fvm_config.json
git commit -m "Add FVM configuration"
2. 配置 .gitignore
# FVM
.fvm/flutter_sdk/
3. 新成員入職
git clone <your-repo>
fvm install
fvm use
一行命令搞定環(huán)境同步!
工作原理
FVM 將各版本 SDK 安裝在統(tǒng)一目錄(和nvm大差不差):
~/.fvm/versions/
├── 3.24.0/
└── 3.19.0/
通過(guò)軟鏈接和 PATH 優(yōu)先級(jí),實(shí)現(xiàn)不同項(xiàng)目使用不同版本。
常用命令速查
| 命令 | 說(shuō)明 |
|---|---|
fvm install <version> |
安裝 Flutter 版本 |
fvm use <version> |
切換項(xiàng)目版本 |
fvm use <version> --global |
設(shè)置全局默認(rèn)版本 |
fvm list |
查看已安裝版本 |
fvm remove <version> |
刪除指定版本 |
fvm flutter <args> |
運(yùn)行 Flutter 命令 |
fvm doctor |
檢查 FVM 狀態(tài) |
更新 FVM 自身
方式一:Homebrew(macOS/Linux)
bash
復(fù)制
brew upgrade fvm
方式二:Dart pub global(Windows)
bash
復(fù)制
dart pub global activate fvm
activate會(huì)自動(dòng)更新到最新版本
方式三:手動(dòng)下載
去 GitHub Releases 下載新版,覆蓋舊文件即可。
驗(yàn)證當(dāng)前版本
bash
復(fù)制
fvm --version
注意:FVM 更新的是工具本身,F(xiàn)lutter SDK 版本是獨(dú)立的——更新 FVM 不會(huì)影響你已經(jīng)通過(guò)它安裝的 3.24.0、3.19.0 等 SDK 版本。
總結(jié)
FVM 是 Flutter 開(kāi)發(fā)者必備的多版本管理工具,和mvm一樣(雖然nvm問(wèn)題也很多)。
推薦團(tuán)隊(duì)統(tǒng)一使用 FVM 管理 Flutter 版本,配合 Git 配置實(shí)現(xiàn)環(huán)境一致性。
如果fvm自己要更新
?? 如果你還有其他 Flutter 開(kāi)發(fā)工具推薦,歡迎補(bǔ)一下!
相關(guān)鏈接:
- FVM 官網(wǎng):https://fvm.app
- FVM GitHub:https://github.com/leoafarias/fvm