使用Easy方式加载具有钢筋依赖关系的项目的答案,现在可以自动解决依赖关系,但不会自动加载它们.
那么,如何自动加载我的ebin和/ deps/*/bin路径中的所有模块?这样,当使用Erlang shell选项卡完成时,它们可用,这大大加快了我的开发过程.
我的解决方案基于Adam Lindberg的优秀答案:https://gist.github.com/1131312它只会自动加载项目模块,所以在erl启动时几乎没有延迟.
Ada*_*erg 10
这个片段可以解决这个问题:
[code:ensure_loaded(list_to_atom(filename:rootname(filename:basename(F))))
|| P <- code:get_path(), F <- filelib:wildcard(P ++ "/*.beam")].
Run Code Online (Sandbox Code Playgroud)
将它~/.erlang作为一行(包括点:)放在你的文件中.,它将在启动任何 Erlang shell时执行.但要注意,它的速度非常慢!
» time erl -noshell -s init stop
erl -noshell -s init stop 0.11s user 0.02s system 11% cpu 1.143 total # Without
» time erl -noshell -s init stop
erl -noshell -s init stop 7.31s user 1.08s system 88% cpu 9.480 total # With
Run Code Online (Sandbox Code Playgroud)
如果生成该过程,则将获得非常快速的开始。
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).
Run Code Online (Sandbox Code Playgroud)
在〜/ .erlang文件中
| 归档时间: |
|
| 查看次数: |
4210 次 |
| 最近记录: |