😇

flutter pub outdatedとは?

に公開

概要

運用しているFlutterアプリのパッケージをアップデートするときに、たまたまflutter pub outdatedというコマンドを使う機会がありました。Node.jsのnpm outdatedのようなものですね。

dart pub outdated

公式によると

Outdated is one of the commands of the pub tool.

「Outdated」は、pubツールのコマンドの一つです。

Use dart pub outdated to identify out-of-date package dependencies and get advice on how to update them. Best practices for dependency management include using the most recent stable package versions, so you can get the latest bug fixes and improvements.

dart pub outdated コマンドを使用して、古くなったパッケージの依存関係を特定し、更新方法に関するアドバイスを得ることができます。依存関係管理のベストプラクティスとして、最新の安定版パッケージを使用することが挙げられます。これにより、最新のバグ修正や機能改善を適用できます。

実際に使ってみてどうだったのか?

ここ注意が必要で、自動生成系のパッケージであるauto_routego_router_builderriverpod_generatorfreezedなどを導入していると競合が起きやすく目安にしかならない。

pub toolは最新のパッケージや少しバージョンが低いのを提案してくる。しかしローカル通知のパッケージなど特定のバージョンに固定が必要だったので、1個ずつ確認してあげていくしかないと思った。「はい昔からある方法です😅」

ちなみにコマンドを実行すると、何か問題ありそうだとこんな表示になります 👀

バージョン管理ツールなしかasdfの場合

flutter pub outdated

fvmの場合

fvm flutter pub outdated

これがもしモノレポのアプリだと、pubspec.yamlがアプリ用とテスト用で分かれていたり別の場所からアプリの中にある別のアプリからよんでることがあるので厄介です。共有しているpubspec.yamlのバージョンを上げれば解決はできそうでした。

ご自身の使用しているdart sdkに合わせて1個ずつ手間ですが修正していく方が安全です。上から順にファイルに記載されいるパッケージのバージョンを更新していきましょう。

最後に

仕事や個人開発で同じアプリを運用しているとパッケージのアップデートをするときがきます。上げるだけなら簡単と思ったら自動生成であったり他の依存関係でなかなか進まないことがあります。バージョンを固定しないといけないこともあるしビジネスの優先度が低いと後回しになることも。。。

Discussion