Chapter 35無料公開

riverpod_cliを使ってマイグレーションする

村松龍之介
村松龍之介
2021.11.18に更新

riverpod_cli

https://pub.dev/packages/riverpod_cli

Riverpodは当初 v0.x から公開が始まり、2021年に v1 の安定板がリリースされました。
中でも v0.13.0 から v0.14.0 へのアップデートや、 v0.14.0 から v1.0.0 へのアップデートは多くの破壊的変更が含まれます。

置換で変更しても良いのですが、条件等考えるとIDEでの一括置換は難しいと思います。
とはいえ、中〜大規模なプロジェクトだと修正必要箇所が多く、手作業ではそれなりの手間がかかります。

riverpod_cli を使って少しでも楽にマイグレートしましょう。

インストール

Dartのコマンドを使ってインストール可能です。

dart pub global activate riverpod_cli

実行時の進捗表示例

Package riverpod_cli is currently active at version 1.0.0.
Resolving dependencies... (3.5s)

+ riverpod_cli 1.0.0

Built riverpod_cli:riverpod_cli.
Installed executable riverpod.
Activated riverpod_cli 1.0.0.

使用前の確認

  • Terminalでプロジェクトのルート階層を開きます。(多くの場合は pubspec.yaml が配置されているディレクトリです)
    VS CodeやAndroid Studio等のIDEを使用している場合は付属のTerminalで問題ありません。
  • プロジェクトにコンパイルエラーがないことを確認しましょう。

実行

riverpod migrate

migrate コマンドを実行すると処理が走り、以下のように変更を提案してくれます。

home_page.dart
- Widget build(BuildContext context, ScopedReader watch) {
+ Widget build(BuildContext context, WidgetRef ref) {
    ...
-   final value = watch(provider);
+   final value = ref.watch(provider);
}

Accept change (y = yes, n = no [default], A = yes to all, q = quit)? 

提案された変更を適用する場合は y 、適用しない場合は n を押しましょう。
A を押すと別ファイルの同じ変更もまとめて適用されます。

最後に pubspec.yaml でのRiverpodバージョンも更新されます

pubspec.yaml
- flutter_riverpod ^0.14.0
+ flutter_riverpod ^1.0.0

全ての変更について確認、または q で終了したら、Gitで変更差分を確認しコミットしましょう👍

参考リンク

https://pub.dev/packages/riverpod_cli
https://riverpod.dev/docs/migration/0.13.0_to_0.14.0