🦄
【Dart】melosがさらに使いやすくなってた
公式ドキュメントを見返したら進化してた
改めてドキュメントを見返してみると、結構便利なものが増えていました。
「そがいなもん、わしゃ知っとったわいや」 というものかもしれませんが、個人的に便利だと感じたものを書こうかと思います。
Shared dependencies
公式ドキュメントより拝借。
melos.yaml
command:
bootstrap:
environment:
sdk: ">=3.0.0 <4.0.0"
flutter: ">=3.0.0 <4.0.0"
dependencies:
collection: ^1.18.0
integral_isolates: any
uni_links2:
uni_links_macos:
git: https://github.com/SamJakob/uni_links_macos.git
dev_dependencies:
build_runner: ^2.3.3
melosパッケージ内の複数箇所で使うパッケージたちはこのように記載することで、bootstrapコマンドを実行した際に記載したバージョンに更新されます(使用していないパッケージのpubspec.yamlに新たに追加されることはありません)。
これにより、パッケージ間でのバージョン差異がなくなり、スムーズな開発を行えるようになりました。
Changelogを見たところ、恐らく3.2.0以降で使用可能です。
renovateとかのバージョン更新のやつでここに記載したパッケージはpubspec.yamlで見なくてもいいよってしたい場合にはどうすればいいんでしょうね...(もし、知見ありましたらご教授いただきたいです)。
Combining with filters
公式ドキュメントより拝借。
melos bootstrap --diff="main"
diff
フィルターを使用することにより、指定したブランチ以降の差分のみをbootstrapしてくれるようです。
Changelogを見たところ、恐らく2.5.0以降で使用可能です(全然知らんかったゾ...)。
時間短縮になるかも・・・?
追記 ---
公式ドキュメントを見ると、ブランチだけではなく、コミットハッシュも対応していました。
--graph
melos list --graph
graph
を使用することによって、melosパッケージ内での各パッケージの依存関係をjson形式で見ることができます。
なんでこれ参照してるの?っていうのがぱっと分かるので、警察をするときに便利です。
閉廷
たぶんまだ知らない便利機能がたくさんあると思うので、みなさまも発信してみてください。
Discussion