FVM 愉快的切換 Flutter 版本,強烈推薦!

語言: CN / TW / HK

使用 Flutter 構建應用程式,我們一般會選用 stable 版本的 flutter,因為它是個穩定版本。如果你要用 Flutter 嘗試寫個 web 應用,就必須得使用 beta 版本,因為現在只有 beta 版本支援 web 開發。

這就意味著,在 web 開發和應用程式開發的時候,你需要解除安裝當前的版本,然後去安裝另外一個版本。這是個很耗時的操作。可能你的網速快,機器效能好,不在乎這麼點時間。但如果需要經常性切換 Flutter 版本,這樣的操作就很痛苦了。事不過三,過三必重構(合格的程式設計師都喜歡偷懶,不做重複工作)

可能還有更苦逼的,同時開發多個應用,每個應用的 Flutter 版本還不一樣,這就受不了了吧。

如果你寫過 python,就會說:直接給每個專案建立個虛擬環境不就可以了。

如果 flutter 也能有這麼個虛擬環境管理工具就好了。

github.com/leoafarias/… 就能滿足需求。

Flutter Version Management: A simple app & cli to manage Flutter SDK versions.

fvm 能夠讓使用者同時在本地安裝並快取多個 Flutter 版本,併為專案建立指定 Flutter 版本的軟連結,或者在全域性環境建立指定版本的 Flutter 軟連結,還可以快速在各個版本間切換使用。

世界那麼大,你能遇到的別人也能遇到,你想偷的懶別人也一樣想。話說回來,如果產品能解決痛點,會缺使用者麼?

fvm 安裝

pub global activate fvm
複製程式碼

fvm 常用命令

一般需要檢視命令的使用說明,都會通過 --help 檢視。

$ fvm --help
Flutter Version Management: A cli to manage Flutter SDK versions.

Usage: fvm <command> [arguments]

Global options:
-h, --help       Print this usage information.
    --verbose    Print verbose output.

Available commands:
  config     Set configuration for FVM
  flutter    Proxies Flutter Commands
  install    Installs Flutter SDK Version
  list       Lists installed Flutter SDK Version
  releases   Lists Flutter SDK releases.
  remove     Removes Flutter SDK Version
  use        Which Flutter SDK Version you would like to use
  version    Prints the currently-installed version of FVM

Run "fvm help <command>" for more information about a command.
複製程式碼
  • config: 對 fvm 進行配置
  • flutter: 對 Flutter 的命令進行代理
  • install: 安裝 Flutter 版本
  • list: 檢視已安裝的 Flutter 版本
  • releases: 檢視 Flutter sdk 都有哪些釋出的版本
  • remove:刪除已安裝的某個 Flutter 的版本
  • use: 選擇你要使用的版本
  • version: 檢視安裝 fvm 的版本

對於子命令的更多使用方法,我們可以通過 fvm help <command> 進行檢視,比如:

$ fvm help use
Which Flutter SDK Version you would like to use

Usage: fvm use [arguments]
-h, --help      Print this usage information.
    --global    Sets version as the global version.
                Make sure Flutter PATH env is set to: /Users/oheroj/fvm/default/bin
    --force     Skips command guards that does Flutter project checks.

Run "fvm help" to see global options.
複製程式碼
  • -h,--help :可以檢視更多使用資訊
  • --global: 將這個版本設定為全域性版本
  • --force: 跳過執行 Flutter 專案檢查命令

命令學習的套路就是多用 help。其他命令讀者可自行學習。

實戰

建立全新專案

接下來我們將用 fvm 建立一個新 flutter 應用專案,採用 flutter 的 beta 版本。

  1. 安裝 beta 的 flutter 版本

    $ fvm install beta
    Installing version: beta
    Cloning into '/Users/oheroj/fvm/versions/beta'...
    remote: Enumerating objects: 3, done.
    remote: Counting objects: 100% (3/3), done.
    remote: Compressing objects: 100% (3/3), done.
    remote: Total 279564 (delta 0), reused 0 (delta 0), pack-reused 279561
    Receiving objects: 100% (279564/279564), 123.05 MiB | 2.52 MiB/s, done.
    Resolving deltas: 100% (216093/216093), done.
    Updating files: 100% (5185/5185), done.
    Version installed: beta
    Downloading Dart SDK from Flutter engine 7a8f8ca02c276dce02f8dd42a44e776ac03fa9bc...
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  173M  100  173M    0     0  5686k      0  0:00:31  0:00:31 --:--:-- 4431k
    Building flutter tool...
    Flutter 1.25.0-8.3.pre • channel beta • https://github.com/flutter/flutter.git
    Framework • revision 5d36f2e7f5 (5 days ago) • 2021-01-14 15:57:49 -0800
    Engine • revision 7a8f8ca02c
    Tools • Dart 2.12.0 (build 2.12.0-133.7.beta)
    複製程式碼
  2. 建立 demo 目錄,然後採用 beta 版本

    $ mkdir demo
    $ cd demo
    $ fvm use beta --force
    Project now uses Flutter: beta
    複製程式碼

    這個時候我們看下目錄下多了 .fvm

    $ ls -all
    total 0
    drwxr-xr-x  3 oheroj  staff   96 Jan 19 21:14 .
    drwxr-xr-x  5 oheroj  staff  160 Jan 19 21:04 ..
    drwxr-xr-x  4 oheroj  staff  128 Jan 19 21:14 .fvm
    $ tree .fvm
    .fvm
    ├── flutter_sdk -> /Users/oheroj/fvm/versions/beta
    └── fvm_config.json
    複製程式碼

    flutter_sdk 軟連線到了 /Users/oheroj/fvm/versions/beta

  3. 初始化專案

    $ fvm flutter create .
    複製程式碼

    demo 專案就初始完成了

  4. vscode 配置 和 Android Studio 的配置

    直接參考官方文件:github.com/leoafarias/…

給舊專案新增 fvm

對於就專案我們如果想切到 fvm 的 flutter 環境,這個步驟還是非常簡單的。

在專案根路徑下執行:

$ fvm use beta --force 
複製程式碼

完成上面的命令,會有個 .fvm 資料夾生成,然後配置 IDE,方法同上。

可以愉快的玩耍 flutter 了。

更多文章閱讀,可關注官方微信公眾號:OldBirds