为什么我得到`Elixir.ModuleName.function is undefined!`错误,除非我运行`mix clean`

时间:2018-03-09 18:10:00

标签: elixir beam

我遇到了一个不寻常的问题,我无法找到答案。我正在使用一个库(libcluster),它允许您定义要在配置文件中使用的函数。所以在我的伞形项目中,我有一个config/def.exs文件:

config libcluster: connect: {Module.Name, :function, args}

中的

dev.exs

然后有一个带有函数的lib/module/name.ex def function(arg), do: <some code>

mix run将在第一次运行代码。但是,如果我再次运行代码,我会收到错误:

** (RuntimeError) Elixir.Module.Name.function/1 is undefined!

如果我运行mix clean然后再mix run,那么一切都会有效。为什么在运行代码之前必须清理代码才能让运行时看到函数?

0 个答案:

没有答案