Flutter fvm
fvm 通过引用每个项目使用的 Flutter SDK 版本来帮助满足一致的应用程序构建的需求。它还允许您安装多个 Flutter 版本,以便使用您的应用程序快速验证和测试即将发布的 Flutter 版本,而无需每次都等待 Flutter 安装
fvm 可以两种模式使用 全局/虚拟环境
-
为啥使用fvm
- 不同的项目可能同时需要多个 Flutter SDK。
- 测试新的 SDK 功能需要在Channels之间切换。
- 版本切换很慢,每次都需要重新安装。
- 无法保持应用程序中 SDK 的最新工作/使用版本。
- Flutter 更新会影响所有 Flutter 项目。
- 团队中开发人员之间的开发环境不一致。
-
如何安装
-
Mac OS X/Linux下通过Homebrew包管理器安装
# 安装 brew tap leoafarias/fvm brew install fvm # 卸载 brew uninstall fvm brew untap leoafarias/fvm
-
Windows下通过choco包管理器安装
# 安装 choco install fvm
-
如何配置
- 环境变量配置
- 安装fvm后,设置环境变量 FVM_HOME 或 FVM_GIT_CACHE
# 以mac为例 # 如果不设置,默认的 flutter SDK 缓存路径为 ~/fvm/versions # ~/.zshrc export FVM_HOME="$HOME/.fvm" # 全局flutter 配置(default为切换后的flutter版本软链接) export PATH=$HOME/.fvm/default/bin:$PATH # 常规flutter 配置 export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
- IDE配置
- vscode
- 可全局配置 vscode(~/Library/Application\ Support/Code\ -\ Insiders/User/settings.json)
# 以mac为例 { "dart.flutterSdkPaths": [ "/Users/usr/fvm/versions/stable", "/Users/usr/fvm/versions/dev" ] } # 然后在 vscode 控制面板中执行 Flutter: Change SDK 切换 Flutter SDK 版本, # 将同步记录到当前项目的 vscode 配置文件 .vscode/settings.json 中(dart.flutterSdkPath)
- 也可直接编辑当前项目的 vscode 配置文件 .vscode/settings.json
# 以mac为例 { "dart.flutterSdkPath": ".fvm/flutter_sdk", # or "dart.flutterSdkPaths": [".fvm/flutter_sdk"] # Remove .fvm files from search "search.exclude": { "**/.fvm": true }, # Remove from file watching "files.watcherExclude": { "**/.fvm": true } }
- 可全局配置 vscode(~/Library/Application\ Support/Code\ -\ Insiders/User/settings.json)
- android studio
- preferences-》Flutter-》Flutter SDK path (填写绝对路径)
- 全局模式:/Users/mac/.fvm/default
- 虚拟环境模式(项目中所有的flutter命令需要用 fvm flutter替换):/项目根目录绝对路径/.fvm/flutter_sdk
- preferences-》Flutter-》Flutter SDK path (填写绝对路径)
- vscode
- 环境变量配置
-
如何使用
# 查看现有远程版本 fvm releases list # 安装flutter版本 fvm install 2.10.5 # 卸载flutter版本 fvm remove 2.10.5 # 查看本地已装的版本 fvm list installed versions # 在程序根目录设置flutter版本 fvm use 2.10.5 # 设置全局版本 fvm global 2.10.5 # 项目目录下执行,可获取当前的使用版本 fvm list # 在当前项目目录下执行,可获取当前项目的flutter版本 fvm flutter --version # 在当前项目目录下执行,清理项目缓存 fvm flutter clean # 在当前项目目录下执行,获取依赖包 fvm flutter pub get # 在当前项目目录下执行,项目运营 fvm flutter run