关于 FVM

FVM(Flutter Version Management)是一个命令行工具,用于管理多个 Flutter 版本和通道。它允许开发者在不同的 Flutter 项目之间快速切换版本,而无需每次都下载和配置新的 Flutter SDK。

官方网站: https://fvm.app

功能

  • 版本管理:允许用户安装、切换和管理多个Flutter SDK版本,并支持 Flutter Forks。
  • 通道管理:支持Flutter的稳定、测试和开发通道。
  • 缓存管理:FVM会缓存已下载的Flutter SDK版本,减少重复下载。
  • 项目配置:可以为每个Flutter项目指定使用的SDK版本。
  • 命令行工具:提供了一系列命令行工具,方便用户进行操作。
  • 全局模式:可以设置一个全局默认的Flutter版本。
  • 版本检查:检查Flutter版本是否为最新,并提供更新选项。

优点

  • 快速切换:在不同项目之间快速切换Flutter版本,提高开发效率。
  • 节省空间:通过缓存机制,避免重复下载相同的Flutter SDK版本,节省磁盘空间。
  • 自定义版本:可以为每个项目定制化Flutter版本,满足不同项目的需求。
  • 易于集成:可以轻松集成到现有的Flutter开发流程中。
  • 减少依赖:通过管理Flutter版本,减少对环境变量的依赖,降低环境配置的复杂性。
  • 跨平台:支持Windows、macOS和Linux平台。

安装 FVM

具体详情请根据自己的 OS 来安装, 官方文档:
https://fvm.app/documentation/getting-started/installation

使用

鸿蒙 Flutter SDK

当前鸿蒙化的 Flutter 版本有 3.7 和 3.22 两个, 均托管于 Gitee, 如下


https://gitee.com/openharmony-sig/flutter_flutter.git
由于当前正在高速迭代,推荐使用 dev 分支, 以便及时更新

https://gitee.com/harmonycommando_flutter/flutter.git
当前默认分支 oh-3.22.0, 后续更新自行关注

克隆 SDK 到本地

使用 FVM 托管 flutter forks, 需要将仓库克隆到 FVM 缓存目录, 并以 custom_ 为前缀命名文件夹
FVM 缓存目录可自行环境变量 FVM_CACHE_PATH, 若不配置,则默认在 /Users/{user}/fvm/versions

示例(3.7 版本):

cd ~/fvm/versions # 进入缓存目录
git clone -b dev https://gitee.com/openharmony-sig/flutter_flutter.git custom_3.7-ohos # 克隆 SDK 仓库(dev 分支)

克隆完毕后, 执行 fvm list, 将会看 custom_3.7-ohos 出现在版本列表中

使用 SDK

SDK 下载到缓存目录以后, 可用 FVM 来创建项目

示例:

# 1.创建项目目录并进入
mkdir -p ~/Project/mobile/sdk_test
cd ~/Project/mobile/sdk_test

# 2. 使用自定义 SDK
# 由于此时项目目录是空的,可能会提示是否继续, 一路 yes 即可
fvm use custom_3.7-ohos

# 3. 创建项目, 不要忽略最后的那个 "." 哦
fvm flutter create --platforms=ohos --project-name sdk_test .

如上示例仅针对全新的项目, 如果是已有项目, 直接执行第二步即可

IDE / 编辑器配置

羡慕创建以后, 目录中会出现 .fvm(软链接到 SDK 实际位置) 和 .fvmrc(配置文件)

执行 tree -L 2 .fvm (仅参考)

.fvm
├── flutter_sdk -> /Users/yeliulee/fvm/versions/custom_3.7-ohos
├── fvm_config.json
├── release
├── version
└── versions
    └── custom_3.7-ohos -> /Users/yeliulee/fvm/versions/custom_3.7-ohos

可发现, 其中 .fvm/flutter_sdk.fvm/versions 下的文件均软链接到 SDK 实际缓存位置, 复用

VSCode

在项目目录下的 .vscode/settings.json 里配置 SDK 位置即可,示例如下

{
  "dart.flutterSdkPath": ".fvm/versions/custom_3.7-ohos", # 也可以是 `.fvm/flutter_sdk`
  "dart.addSdkToTerminalPath": true, # 表示将当前 SDK 添加到 VSCode 集成终端的 PATH
  "dart.env": {
    "PUB_HOSTED_URL": "https://pub.flutter-io.cn" # 根据情况设置(国内推荐)
  },
}

IDEA / AS

直接在模块设置的弹窗里选择 SDK 即可, 位置同上

最后修改:2024 年 11 月 19 日
如果觉得我的文章对你有用,请随意赞赏