说,我在我的凤凰应用程序中的“lib”文件夹中创建了一个模块。如何从控制器访问它,我是否必须先加载它?或者只是别名?或者首先加载启动然后加载别名?
答案 0 :(得分:2)
每当您执行.ex
.exs
时,lib
中所有.beam
(非mix compile
)文件中的所有模块都会被编译为_build/dev/lib/my_app/ebin
个文件其中dev
是混合环境,my_app
是应用程序的名称。每当您尝试在尚未加载的模块上调用函数时,Erlang VM都会在所有"代码加载路径中搜索相应的.beam
文件。 (已经包含_build/dev/lib/my_app/ebin
),如果找到,则在执行函数之前加载它。如果找不到,则会出现模块不可用的错误。
所以,你不必加载它。如果需要,只需调用该函数和可选的别名。