Flutterのバージョンをプロジェクト毎に管理してみた
Flutterのバージョンを切り替えて開発をする機会がありましたので、Flutter Version Management(FVM)を導入してみました。開発チームでFlutterのバージョンを合わせたり、プロジェクトでFlutterのバージョン管理をする場合に便利です。
HomebrewでFVMをインストール
HomebrewでFVMをインストールします。
brew tap leoafarias/fvm brew install fvm
既にFlutter SDKをインストールしている場合、競合を回避するため事前に削除しておく必要があります。
プロジェクトの設定
Flutterのバージョンを指定
使用可能なFlutterのバージョン一覧を取得します。
fvm releases
プロジェクトのルートディレクトリに移動して、プロジェクトで使用するFlutterのバージョンを指定します。対象のバージョンがインストールされていない場合、Flutterをインストールするか聞かれますので、Yes(Y)を入力してインストールを開始します。
fvm use 3.0.5
プロジェクトで既に.fvm/fvm_config.json
が存在する場合は、事前に定義されたFlutterのバージョンをインストールします。
fvm install
.gitignoreの設定
プロジェクトの.gitignore
にFlutter SDKへの相対シンボリックリンクを追加します。
〜〜〜 .fvm/flutter_sdk
VS Codeの設定
VS Codeの設定でFlutter SDKのパスを指定します。
{ "dart.flutterSdkPath": ".fvm/flutter_sdk", "search.exclude": { "**/.fvm": true }, "files.watcherExclude": { "**/.fvm": true } }
VS Codeを開き直すと設定が反映されます。これでVS CodeではFVMで指定したFlutterのバージョンが使われることになります。
Flutterのコマンドを使用
Flutterのコマンドを使用する場合は、先頭にfvm
をつけてコマンドを実行します。
# 例 fvm flutter --version fvm flutter doctor fvm flutter run
毎回fvm
を付けたくない場合は、エイリアスを設定します。
# zshの場合 echo 'alias flutter="fvm flutter"' >> ~/.zshrc source ~/.zshrc
プロジェクト以外でFlutterのコマンドを使用
プロジェクト以外でFlutterのコマンドを使用するにはグローバルバージョンを設定します。
fvm global 3.3.3
パスを通します。
# zshの場合 echo 'export PATH="$PATH:$HOME/fvm/default/bin"' >> ~/.zshrc source ~/.zshrc
プロジェクト以外でもFlutterコマンドが使えるようになります。先頭にfvmを付ける必要はありません。
flutter --version
Flutterのバージョンを削除
Flutterのバージョンは次のコマンドで削除できます。
fvm remove 3.0.5
まとめ
FVMは他言語のバージョン管理ツールと使い方も似ているため直感的に利用することができました。設定をしておけばプロジェクトを開いた際に自動でFlutterのバージョンが切り替わるので、複数のプロジェクトに参加している場合はとくに役立つツールだと思います。