1. OverView
どもども、うん、アドベントカレンダーの完走賞狙いなんだ、すまない。
今回は、やらかしたTIPSをまとめときたいと思います。
2. 懺悔
2.1 kinoがインストールできない!…違います、ただのバージョン指定ミスです。
Livebookでkinoを使おうと思った賢い俺様、先頭のDependenciesのところで、Mix.Installでkinoを入れたにも関わらず、
Kino.Textが使えません。
Mix.Installで指定したKinoのバージョンが0.6.0
そして、今のKinoのバージョンはv0.14.2です。
素晴らしい参考資料があったのにねぇ。
Kino まとめ - Livebook があれば何でもできる -
https://qiita.com/RyoWakabayashi/items/dc1cbd9be772fdcbce74
2.2 iexがexampleをロードしねぇ!
iex.bat -S mixをしても、 iexがexampleをロードしねぇ!なので、ブレークポイントを設定どころではない。
…mix cleanで、古いファイルを消したら、治りました。
起動時に以下の様なエラーが出ていて、気づきましたとさ。
(base) C:\Users\nanbu\example>iex.bat -S mix
Erlang/OTP 27 [erts-15.2] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [jit:ns]
Interactive Elixir (1.18.0) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> c "lib/example.ex"
warning: redefining module Example (current version loaded from _build/dev/lib/example/ebin/Elixir.Example.beam)
│
1 │ defmodule Example do
│ ~~~~~~~~~~~~~~~~~~~~
│
└─ lib/example.ex:1: Example (module)
[Example]
iex(2)>
2.3 Debuggerが起動しねぇ!
Debuggerが起動しない。
iex.batを実行すると出来るけど、iex.bat -S mixを実行すると起動しない。
iex(1)> :debugger.start()
** (UndefinedFunctionError) function :debugger.start/0 is undefined (module :debugger is not available)
:debugger.start()
iex:1: (file)
iex(1)>
これ、公式に書いてありました。
https://hexdocs.pm/elixir/debugging.html
Missing dependencies
Mix.ensure_application!(:wx) # Not necessary on Erlang/OTP 27+
Mix.ensure_application!(:runtime_tools) # Not necessary on Erlang/OTP 27+
Mix.ensure_application!(:observer)
Mix.ensure_application!(:debugger)
以下で怪傑
(base) C:\Users\nanbu\example>iex.bat -S mix
Erlang/OTP 27 [erts-15.2] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [jit:ns]
Interactive Elixir (1.18.0) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> Mix.ensure_application!(:debugger)
:ok
iex(2)> :debugger.start()
{:ok, #PID<0.135.0>}
iex(3)>
僕の追加ってる環境はErlang/OTP 27なので、上の一行で大丈夫でしたね。
最後に
さて、そんなわけで無事?三年目にしてアドベントカレンダーを完走出来ました。
fukuoka.ex, piyopiyo.exのみなさん、ありがとうございました。
こつこつ、チートシート作りは実用的?な方面に手を出したいと思うので、ご支援よろしくお願いします。