Что означает `runtime: false` в зависимостях Mixfile? - PullRequest
0 голосов
/ 24 октября 2018

Из документации mix deps:

:runtime - является ли зависимость частью исполняемых приложений.Если ключ :applications не указан в def application в вашем файле mix.exs, Mix автоматически включит все зависимости в качестве приложения времени выполнения, кроме случаев, когда указан runtime: false.По умолчанию true.

В соответствии с mix compile.app документами:

:applications - все приложения, от которых зависит ваше приложение во время выполнения.По умолчанию этот список автоматически выводится из ваших зависимостей.Mix и другие инструменты используют список приложений для запуска ваших зависимостей перед запуском самого приложения.

Означает ли это, что добавление runtime: false к зависимости сделает ее , а не запущен как часть дерева контроля приложения, но его функции будут доступны во время компиляции?

1 Ответ

0 голосов
/ 24 октября 2018

Как вы упоминали, это именно тот случай.Пометка зависимости runtime: false не запустит ее как часть дерева контроля приложений при запуске вашего основного приложения.

До Elixir 1.4 нам приходилось индивидуально указывать приложения, которые нужно было запустить, помещая их в applications:

def application do
  [applications: [:logger, :bamboo]]
end

Теперь мы используем extra_applications вместо этого и помечаем конкретные зависимости runtime: false, чтобы удалить их из списка приложений во время выполнения.

...