Module 加载路径中的所有erlang模块

Module 加载路径中的所有erlang模块,module,erlang,erl,Module,Erlang,Erl,使用中的答案,依赖项现在会自动解析,但不会自动加载 那么,如何自动加载ebin和/deps/*/bin路径中的所有模块?这样,当使用erlangshell选项卡completion时,它们就可用了,这大大加快了我的开发过程 我的解决方案基于Adam Lindberg的伟大答案:它只会自动加载项目模块,因此几乎不会延迟erl启动。这段代码将实现以下目的: [code:ensure_loaded(list_to_atom(filename:rootname(filename:basename(F))

使用中的答案,依赖项现在会自动解析,但不会自动加载

那么,如何自动加载ebin和/deps/*/bin路径中的所有模块?这样,当使用erlangshell选项卡completion时,它们就可用了,这大大加快了我的开发过程


我的解决方案基于Adam Lindberg的伟大答案:它只会自动加载项目模块,因此几乎不会延迟erl启动。

这段代码将实现以下目的:

[code:ensure_loaded(list_to_atom(filename:rootname(filename:basename(F))))
 || P <- code:get_path(), F <- filelib:wildcard(P ++ "/*.beam")].

如果你产生了这个过程,你会得到一个非常快速的开始

LP = fun() -> [code:ensure_loaded(list_to_atom(filename:rootname(filename:basename(F)))) || P <- code:get_path(), F <- filelib:wildcard(P ++ "/*.beam")] end.
spawn(LP).

LP=fun()->[代码:确保加载(列表到原子(文件名:rootname(文件名:basename(F)))| | P Tnx,为了方便起见,我很乐意牺牲一些前期性能。是的,在第一次按TAB键时自动加载模块会很酷。:-@VansS,以确保shell在按TAB键时能够自动完成模块和函数名。@Adam Lindberg对。在这个特定问题的范围内,使用“确保以这种方式加载”是有意义的。
LP = fun() -> [code:ensure_loaded(list_to_atom(filename:rootname(filename:basename(F)))) || P <- code:get_path(), F <- filelib:wildcard(P ++ "/*.beam")] end.
spawn(LP).