生命不息折腾不止,不论是活跃拥抱变化自动升级 Flutter 版别亦或是被逼无法被迫升级 Flutter 版别,你总逃不过在多 Flutter 版别间来回切换的场景。想逃的办法也有,弃坑 Flutter。
身患重疾,又名懒癌。要我另辟蹊径折腾,我当然是一万个不愿意滴,
假如要在多个 Flutter 版别间切换,我的做法一般是这样的:直接下载,然后在 Android Studio 中手动切换,如:
偶然切切,其实也还好,究竟当时项目 Flutter 版别变化不大,需求不多。
今天编译github.com/AppFlowy-IO… 项目,刚好 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 装置需求这玩意)
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 是否装置成功
choco -v
假如指令行里找不到 choco,显着是要将 choco 装备到体系环境变量中。这就不细说了自行谷哥吧,俺深深理解再多讲只会拉低本文档次,本文目标人群是高富帅和白富美。
- 装置成功了 choco 不能糟蹋,choco 用起来
choco install fvm
这样阅历上述跋山涉水,跋山涉水后。祝贺你,终于把 fvm 装置上了。
装备
那么新问题来了,我 C 盘小的不幸,这样那样的软件默许都悄咪咪往里面装。所以这儿需求装备下 fvm 下载文件缓存途径,不能到 C 盘。C 盘何其珍贵,flutter sdk 都下载到 C 盘不就等于要了我的老命么?
不论三七二十一吧,来个 FVM_HOME 体系环境装备,默许指定到你想要缓存的途径。
默许 fvm 下载地址是 C 盘,所以还需求指令更新掉本来老的缓存值:
fvm config –cache-path D:\Flutter-SDK\
这样,处理了老夫的第二个烦恼,将宝贵的 C 盘空间节约下来。
下载 Flutter 版别
什么? 还要下载 Flutter 版别,那我之前下载的版别岂不是废了,躺尸在 D 盘不糟蹋空间么?唉,下就下吧,走上了这条 FVM 不归路,还能怎样?
怎么下载咧?
简单,得先看看有什么能够下载的
fvm releases
Feb 27 18 │ v0.1.6
Mar 6 18 │ v0.1.8
Mar 7 18 │ v0.1.9
Mar 7 18 │ v0.2.0
Mar 12 18 │ v0.2.1
Mar 13 18 │ v0.1.5
Mar 16 18 │ v0.2.2
Mar 20 18 │ v0.2.3
Mar 26 18 │ v0.2.4
Mar 30 18 │ v0.2.5
Mar 30 18 │ v0.2.6
Apr 2 18 │ v0.2.7
Apr 2 18 │ v0.2.3
Apr 3 18 │ v0.2.8
.....
这样就能够看到一切 flutter 版别了,别告诉为啥知道这个指令,fvm —help。
考虑到兼容之前现已下载一些版别,这儿直接从头下载之前三个老版别即可。装置指令如下,这儿以装置 flutter 3.0.5 为例阐明
fvm install 3.0.5
这样就下载了 3.0.5 当然这个过程中 fvm 也会帮你下载和装置对于的 dart 版别。
显着感觉 fvm install 有点香啊,不用到官网看 stable 版别,然后下载 zip 包,然后解压了。这儿一个指令行搞定。
这样能够再履行如下指令来看看当时 fvm 可辨认的和切换的版别列表
fvm list
成果如下:
fvm list
Cache Directory: D:\Flutter-SDK\versions
3.7.3 (global)
3.0.5
2.10.3
已有 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 版别,看到是收效的。
fvm list
Cache Directory: D:\Flutter-SDK\versions
3.7.3 (global)
3.0.5
2.10.3
fvm global 3.0.5
Flutter "3.0.5" has been set as global
flutter --version
Flutter 3.0.5 • channel stable • https://github.com/flutter/flutter.git
Framework • revision f1875d570e (10 months ago) • 2022-07-13 11:24:16 -0700
Engine • revision e85ea0e79c
Tools • Dart 2.17.6 • DevTools 2.12.2
fvm global 2.10.3
Flutter "2.10.3" has been set as global
flutter --version
Flutter 2.10.3 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 7e9793dee1 (1 year, 2 months ago) • 2022-03-02 11:23:12 -0600
Engine • revision bd539267b4
Tools • Dart 2.16.1 • DevTools 2.9.2
总结
懒的确不好,对码农来说学会偷懒才是好,fvm 真香,用起来~~~。