当前位置: 首页 > news >正文

Flutter 版的 NVM——FVM 使用指南

what is FVM?

FVM(Flutter Version Management) 是一个用于管理多个 Flutter SDK 版本的工具,类似于 Node.js 开发者常用的 NVM。

  • 官网:https://fvm.app
  • GitHub:https://github.com/leoafarias/fvm

解决了什么问题?

  • 不同项目需要不同 Flutter 版本
  • 全局只有一个版本,切换麻烦
  • 团队成员版本不一致导致构建失败

安装 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. 在项目中使用和全局使用

## 项目切换
cd /项目目录
fvm use 3.24.0

执行后会自动生成 .fvm 配置文件和 fvm_config.json

## 全局切换
fvm use 3.24.0 --global
对比项 fvm use X --global fvm use X
作用范围 整台机器 当前项目
生成文件 ~/.fvm/ ./.fvm/
Git 管理 ❌ 不提交 ✅ 可以提交
优先级 低(被项目配置覆盖)

最佳实践:个人开发用 --global不用管的那么严格不会污染项目代码,团队项目不带 --global 并提交配置,还是严格一些好。

3. 运行 Flutter 命令

# 通过 fvm 调用(推荐)
fvm flutter run
fvm flutter build apk# 或激活全局版本
fvm use 3.24.0 --global

4. 查看已安装版本

fvm list

输出示例:

Cached versions:3.24.03.19.0

团队协作最佳实践

1. 提交 FVM 配置到 Git

在项目根目录执行:

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

一行命令搞定环境同步!

工作原理

FVM 将各版本 SDK 安装在统一目录(和nvm大差不差):

~/.fvm/versions/
├── 3.24.0/
└── 3.19.0/

通过软链接和 PATH 优先级,实现不同项目使用不同版本。

常用命令速查

命令 说明
fvm install <version> 安装 Flutter 版本
fvm use <version> 切换项目版本
fvm use <version> --global 设置全局默认版本
fvm list 查看已安装版本
fvm remove <version> 删除指定版本
fvm flutter <args> 运行 Flutter 命令
fvm doctor 检查 FVM 状态

更新 FVM 自身

方式一:Homebrew(macOS/Linux)

bash

复制

brew upgrade fvm

方式二:Dart pub global(Windows)

bash

复制

dart pub global activate fvm

activate 会自动更新到最新版本

方式三:手动下载

去 GitHub Releases 下载新版,覆盖旧文件即可。


验证当前版本

bash

复制

fvm --version

注意:FVM 更新的是工具本身,Flutter SDK 版本是独立的——更新 FVM 不会影响你已经通过它安装的 3.24.03.19.0 等 SDK 版本。

总结

FVM 是 Flutter 开发者必备的多版本管理工具,和mvm一样(虽然nvm问题也很多)。

推荐团队统一使用 FVM 管理 Flutter 版本,配合 Git 配置实现环境一致性。
如果fvm自己要更新


💡 如果你还有其他 Flutter 开发工具推荐,欢迎补一下!

相关链接:

  • FVM 官网:https://fvm.app
  • FVM GitHub:https://github.com/leoafarias/fvm
http://www.jsqmd.com/news/652835/

相关文章:

  • BilibiliDown完整教程:3步轻松下载B站视频,打造个人离线视频库
  • 别再只懂Git了!SVN服务器在2024年的企业内网部署与权限配置实战指南
  • 实测STM32F103C8T6最小系统板低功耗电流:STOP/STANDBY模式到底能省多少电?(附CubeMX配置)
  • 人工智能中的算法创新与应用落地
  • AI元人文核心概念体系:基于奠基文本的系统梳理
  • 2026降AI率工具怎么选?亲测后这款性价比拉满
  • 开源项目管理软件OpenProject:团队协作的终极免费解决方案
  • 终极指南:如何免费下载Steam创意工坊模组——WorkshopDL完全教程
  • 从‘人人开源’renren-generator看国内Java开源生态:一个代码生成器如何成为微服务项目标配?
  • 当CTO问我“业务价值”时,我递上这份框架
  • 移远FC20模组WiFi功能配置指南:快速搭建4G+WiFi无线热点(附测速对比)
  • 工厂管理化技术抽象工厂与依赖倒置
  • 化工专业必备:手把手教你搞定MDI Jade 6.5安装(附安装包及常见报错修复)
  • 如何为禁用按钮点击添加提示文案
  • 医疗设备操作系统迁移:挑战与解决方案
  • 别再手动查资料了!用n8n+Ollama本地模型,5分钟搭建一个能聊能查的AI小助手
  • 从ATE到ATPG:基于Scan Chain的芯片制造缺陷诊断实战
  • 如何在网页中实现国际象棋棋子的拖拽与格点吸附功能.txt
  • K8s Secret :敏感数据管理的正确姿势
  • Cursor Free VIP终极指南:如何免费无限使用Cursor AI Pro功能
  • ZYNQ7000 Vivado开发实战:从零搭建嵌入式系统
  • **无代码AI时代来临:用Python构建你的第一个可视化低代码智能助手**
  • C#怎么操作PDF合并拆分 C#如何用代码将多个PDF合并成一个或拆分成多个文件【工具】
  • 开发者跨界医疗AI:零基础转型路线图
  • 别再死记硬背了!我用这50道嵌入式Linux驱动面试题,成功拿下了大厂Offer
  • 从零到一:基于JSP+SQL Server的图书馆管理系统实战开发
  • 2026年当前,河南省刹车片加工定制实力厂家深度解析与采购指南 - 2026年企业推荐榜
  • 告别K-Lite!2025年手动搭建PotPlayer+LAV+MadVR+XySubFilter的保姆级避坑教程
  • 2026年现阶段,茅聚顺名酒有限公司为何成为无锡地区茅台回收的实体店优选? - 2026年企业推荐榜
  • SenseVoice模型微调实战:用不到50条音频,让你的语音识别听懂‘行话’