一款不错的Flutter SDK多版本管理工具

一款不错的Flutter SDK多版本管理工具
唯你highlight: androidstudio
theme: juejin
生命不息折腾不止,不论是积极拥抱变化主动升级 Flutter 版本亦或是被逼无奈被动升级 Flutter 版本,你总逃不过在多 Flutter 版本间来回切换的场景。想逃的办法也有,弃坑 Flutter。 😁
身患重疾,又名懒癌。要我另辟蹊径折腾,我当然是一万个不愿意滴,
如果要在多个 Flutter 版本间切换,我的做法一般是这样的:直接下载,然后在 Android Studio 中手动切换,如:
偶尔切切,其实也还好,毕竟当前项目 Flutter 版本变化不大,需求不多。
今天编译https://github.com/AppFlowy-IO/AppFlowy 项目,刚好 VSCode 遇到 报错:
然后懒癌又发作,懒得切 Android Studio 了,想在 VSCode 上切换 flutter 版本。
搜了下,发现了这货‣。兴致一来,打算试试。
FVM 是个啥东西
官方简介:Flutter Version Management: A simple CLI to manage Flutter SDK versions.
简单说就是:一个 Flutter 版本管理工具。
难道这货比俺手动 Android Studio 切换更容易? 玩玩吧,反正闲着也是闲着~~~。
如何安装
“千辛万苦”找了个 window 的安装步骤如下:
- powershell 管理员身份运行命令行
- 执行如下命令安装 choco(choco 是啥先不管,fvm 安装需要这玩意)
1 | Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) |
- 检验下 choco 是否安装成功
1 | choco -v |
如果命令行里找不到 choco,明显是要将 choco 配置到系统环境变量中。这就不细说了自行谷哥吧,俺深深明白再多讲只会拉低本文档次,本文目标人群是高富帅和白富美。
- 安装成功了 choco 不能浪费,choco 用起来
1 | choco install fvm |
这样经历上述翻山越岭,跋山涉水后。恭喜你,终于把 fvm 安装上了。
配置
那么新问题来了,我 C 盘小的可怜,这样那样的软件默认都悄咪咪往里面装。所以这里需要配置下 fvm 下载文件缓存路径,不能到 C 盘。C 盘何其珍贵,flutter sdk 都下载到 C 盘不就等于要了我的老命么?
不管三七二十一吧,来个 FVM_HOME 系统环境配置,默认指定到你想要缓存的路径。
注意哈,FVM_HOME这个是较旧的缓存目录,笔者在其他电脑上重新安装fvm时候版本是3.17 目录变更成FVM_CACHE_PATH了
默认 fvm 下载地址是 C 盘,所以还需要命令更新掉原来老的缓存值:
1 | fvm config –-cache-path D:\Flutter-SDK\ |
这样,解决了老夫的第二个烦恼,将宝贵的 C 盘空间节约下来。
下载 Flutter 版本
什么? 还要下载 Flutter 版本,那我之前下载的版本岂不是废了,躺尸在 D 盘不浪费空间么?唉,下就下吧,走上了这条 FVM 不归路,还能怎样?
怎么下载咧?
简单,得先看看有什么可以下载的
1 | λ fvm releases |
这样就可以看到所有 flutter 版本了,别告诉为啥知道这个命令,fvm —help。
考虑到兼容之前已经下载一些版本,这里直接重新下载之前三个老版本即可。安装命令如下,这里以安装 flutter 3.0.5 为例说明
1 | fvm install 3.0.5 |
这样就下载了 3.0.5 当然这个过程中 fvm 也会帮你下载和安装对于的 dart 版本。
明显感觉 fvm install 有点香啊,不用到官网看 stable 版本,然后下载 zip 包,然后解压了。这里一个命令行搞定。
这样可以再执行如下命令来看看当前 fvm 可识别的和切换的版本列表
1 | fvm list |
结果如下:
1 | λ fvm list |
已有 flutter 版本处理
原下载 flutter 版本
谁还没个无知的时候,不知道 fvm 之前大家不都是乐滋滋下载 zip 然后解压,谁还想到过管理呢? 是吧。这边以前版本怎么善后呢?这是一个问题。
我的方法很简单了,全部删掉,人穷志短嘛,身为一个穷逼屌丝,我岂能忍它躺尸在我 D 盘浪费空间?
果不其然,以前三个版本耗费了 7G+ 空间,一删又是一笔巨大的财富。
更新路径
再就是更新下系统环境变量中默认配置。
比如,原来环境变量 Path 中配置
flutter 默认路径值是:D:\Flutter\FlutterSDK\2.10.3\bin;
Dart 默认路径值是:D:\Flutter\FlutterSDK\2.10.3\bin\cache\dart-sdk\bin
你得更新到现在的 Flutter 目录路径
flutter 默认路径值设置为:D:\Flutter-SDK\default\bin;
Dart 默认路径值是:D:\Flutter-SDK\default\bin\cache\dart-sdk\bin
有人说:default 是个什么鬼?我本地没这路径啊,default 的意思可以理解成当前使用的 flutter 版本。
比如: 你当前使用 flutter 版本是 3.0.5 那么 default 指 3.0.5 ; 如果你当前用的是 2.10.3 那 default 就是 2.10.3 。
这个 default 目录 fvm 会帮你自动生成,如下,fvm 切哪个版本,就会拷贝 versions 中的版本到 default 中。
当然还有 Android Studio 中,自行指定就可。
如何使用
fvm —help 应该说的很清楚了,网上大部分用了 fvm use xxx 命令来切换,我本人习惯全局切。
这里重点说下 fvm global 。 该命令是切换全局 flutter 版本的,我尝试用了下,发现 fvm global 切换过程中会报错,说设置的默认路径不对导致。
系统环境变量 Path 中指定 flutter 版本必须这样:D:\Flutter-SDK\default\bin; 如果指定一个固定版本,切换不会生效。这也是上面要更新 path 中路径原因。
在重新设置后,效果如下:
在我切换到 3.0.5 和 2.10.3 后,用 flutter —version 查看当前 flutter 版本,看到是生效的。
1 |
|
总结
懒确实不好,对码农来说学会偷懒才是好,fvm 真香,用起来~~~。