Elixirで依存するパッケージは mix.exs
に記述していきますが、
以下のようにバージョンを書く必要があり、少し面倒です。
mix.exs
defp deps do
[
{:hogehoge, "~> 1.0.0"}
]
end
バージョンのところを 0.0.0 にしておけば
気にしなくてもいいらしいのですが、
それもそれで少し気持ち悪いです。
(追記)↑こちらは手元で試してもうまく動きませんでした。。誤情報失礼いたしましたmm
少しでも楽にならないかなーと思い、
mix hex.deps
というmixのカスタムコマンドを作成してみました
使い方
mix hex.deps にパッケージ名の引数を渡してあげると
{:hogehoge, "~> 1.0.0"}
といった形式でパッケージ名と最新バージョンが
表示されます
$ mix hex.deps httpoison
{:httpoison, "~> 0.11.2"}
$ mix hex.deps httpoison poison credo | pbcopy
# クリップボードに以下の文字列が格納される
{:credo, "~> 0.8.1"},
{:poison, "~> 3.1.0"},
{:httpoison, "~> 0.11.2"}
インストール方法
$ git clone https://github.com/tamanugi/mix_task_hex_deps.git
$ cd mix_tasks_hex_deps
$ mix do archive.build, archive.install
感想とか
npm install {パッケージ名}
みたいに
mix.exsに追記できるといいかなと思ったりもしたのですが、
exsファイルを弄るものどうかなと思って
とりあえずは標準出力に出力させるだけにしてみました
カスタムタスク作るのは大変かなと思ったのですが、
思ったよりはお手軽につくれました。
Elixirは公式のコードも読みやすいので、
いろいろ参考になりますね
あとはもうちょっといい名前つけたらよかったな
参考
@ma2ge さん, @niku さんのリポジトリも参考にさせていただきました
https://github.com/ma2gedev/mix-star
https://github.com/niku/mix_tasks_niku_new