前置き
Melosという便利なツールがあるみたいなので、紹介程度の軽いメモです。詳しい使い方などは参考に貼った公式ドキュメントを見てみてください。結構わかりやすくまとまっています。
メモ
FlutterでNew Projectすると、rootに1つの pubspec.yamlとlibパッケージが作られてlibの中をいじって開発を進めていくと思いますが、普通に開発するappという実際のアプリが含まれたパッケージとui_catalogのようなアプリが含まれたパッケージを1つのプロジェクトで管理したい場合、それぞれのパッケージに移動して pubspec.yamlの依存を取りに行く flutter pub getを実行する必要があったりと色々と管理が面倒です。
そこでMelosが複数パッケージが存在するDartプロジェクトを管理するCLIツールとして機能してくれます。
Melosではrootにpackagesというパッケージを作ってその直下にappやui_catalogなどのNew Projectしたときにできるlibパッケージレベルのものを複数置いて管理します。
以下の機能があるようです。
- Automatic versioning & changelog generation.
- Automated publishing of packages to pub.dev.
- Local package linking and installation.
- Executing simultaneous commands across packages.
- Listing of local packages & their dependencies.
Melosは有名なところでいうと、 flutterfireで導入されているみたいです。
Melosを使えば例えば、1つのプロジェクトで複数のパッケージを管理したい場合に、例えばanalyzeをかけたいとき、appとui_catalogそれぞれのパッケージに移動してdart analzeをかけないといけませんが、melos.yamlにscriptを設定することで自動で全パッケージに対して実行してくれるようになります。
他にも、 pub run build_runner buildのようなコマンドも同様に動いてくれます。
コマンドラインで動かしたときもビジュアル的に使い心地が良いので使ってみてください。