У меня есть простая команда Erlang, которую я хочу вызвать через erl -eval
(для компиляции шаблона erlydtl, как описано в erlydtl page).Erlang: вызов erl -eval из командной строки никогда не выходит
Когда я делаю это в интерактивном режиме из оболочки все работает нормально, а команда выходит сразу:
erl -pa ebin deps\erlydtl\ebin Eshell V5.9.3.1 (abort with ^G)
1> erlydtl:compile('templates/tictactoe.dtl',tictactoe_dtl,[{out_dir,'ebin'}]).
ok
Но когда я пытаюсь сделать это с помощью erl -eval
(я хочу, чтобы запустить это из BAT-файла):
Затем команда выполняет свою работу (шаблон скомпилирован), но он не завершается, и мне нужно убить процесс оболочки вручную ctrl + c (я работаю под Windows).
Мне просто нужна команда для компиляции шаблона и выхода. В чем может быть проблема?
Обновление:
Одним из решений может быть добавление выхода() вызов в конце команды, но потом в итоге следующим образом:
erl -pa ebin deps\erlydtl\ebin -noshell -eval erlydtl:compile('templates/tictactoe.dtl',tictactoe_dtl,[{out_dir,'ebin'}]),exit(success).
{"init terminating in do_boot",success}
Crash dump was written to: erl_crash.dump
init terminating in do_boot (success)
Сообщение об ошибке очень раздражает, поэтому Мне все еще не нравится это решение.
В качестве альтернативы вы можете построить свой проект с арматурой. Он поддерживает компиляцию шаблона Erlydtl при установке в директорию/templates. –
В настоящее время я использую арматуру, но ищу альтернативу, потому что сборщик арматуры работает очень долго. –
Является ли 'rebar compile skip_deps = true' также медленным для вас? –