6

鉄筋の依存関係を持つプロジェクトをロードする簡単な方法からの回答を使用して、依存関係は自動的に解決されるようになりましたが、自動的にはロードされません。

では、ebinおよび/ deps / * / binパス内のすべてのモジュールを自動的にロードするにはどうすればよいですか?そうすれば、Erlangシェルタブ補完を使用するときにそれらを利用できます。これにより、開発プロセスが大幅に高速化されます。

Adam Lindbergのすばらしい答えに基づく私の解決策https : //gist.github.com/1131312プロジェクトモジュールを自動的にロードするだけなので、erlの起動にほとんど遅延はありません。

4

2 に答える 2

10

このスニペットはトリックを行います:

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

~/.erlangそれを1行(ドット:)としてファイルに入れると、Erlangシェルの.起動時に実行されます。ただし、注意してください、それは恐ろしく遅いです!

» 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 
于 2011-08-03T13:15:43.990 に答える
6

プロセスを生成すると、非常に高速に開始できます。

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).

〜/.erlangファイル内

于 2013-08-04T07:33:30.897 に答える