我遇到了一个不寻常的问题,我无法找到答案。我正在使用一个库(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
,那么一切都会有效。为什么在运行代码之前必须清理代码才能让运行时看到函数?