簡単Elixirシリーズ
~ Elixirプログラム実行の色々な方法 ~
この記事は「Elixir Advent Calendar 2022」1日目の記事です
東京にいるけどFukuokaexのYOSUKEです。
簡単 Elixirシリーズでは小ネタをサクッと書いていこう。というコンセプトで作っていきます。
今回は、elixirのプログラムの実行をする色々な方法を知る。という小ネタ(そう、この記事はサクッとがコンセプトW)
mix を使った場合
まずは、mix プロジェクトで作成をして行きましょう。
mix new hello
cd hello
hello.exのファイルの中身を以下のように書いています。
defmodule Hello do
def call(name) do
"Hello #{name}"
end
end
IO.puts Hello.call("YOSUKE!")
コンソールから実行
elixir lib/hello.ex
Hello YOSUKE!
iexから実行
iex> c "lib/hello.ex"
Hello YOSUKE!
[Hello]
iexを起動と同時に実行する
iex lib/hello.ex
Hello YOSUKE!
Interactive Elixir (1.13.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
mix コマンドを利用して実行する
iex -S mix
Compiling 1 file (.ex)
Hello YOSUKE!
iexを起動後に rコマンドとモジュール名で実行(ちなみに、こちらはモジュールを書き換えた際にiexを再起動せずに反映させたい時にも便利です。
iex> r Hello
Hello YOSUKE!
{:reloaded, [Hello]}
PS. mix プロジェクトで作成した場合には、r
コマンドではなく、recompile
で再反映させる事もできます。
iex> recompile
Compiling 1 file (.ex)
Hello YOSUKE!
:ok
mix を使わない場合
基本的にはmixで利用できるものと同じも多いので、ここでは、 mix を使わずに実行する際に、mixを使った場合との差分のみ紹介します。
使えないもの
こちらは使えないです。
iex -S mix
こちらも使えないです。
iex> recompile
Mix is not running. Please start IEx with: iex -S mix
:error
ひと工夫が必要なもの
そして、こちらも実はこのままでは使えません。一工夫が必要です。
iex> r Hello
r コマンドを利用できるようにするには、一旦、lib/hello.ex をコンパイルしておく必要があります。
elixirc lib/hello.ex
こちらを実行し、 Elixir.Hello.beam
ファイルが存在するルート上でのみ利用できるようになります。
iex> r Hello
Hello YOSUKE!
{:reloaded, [Hello]}
ということで、コンパイルが必要なexファイルの様々な実行方法でした。