Phoenix.CodeReloader
Исходный кодПлагин и модуль для автоматической перезагрузки кода.
Чтобы избежать состояний гонки, все перезагрузки кода выполняются последовательно.
Краткое описание
- call(conn, opts)
API, используемый Plug для вызова перезагрузчика кода при каждом запросе.
- init(opts)
API, используемый Plug для запуска перезагрузчика кода.
- reload(endpoint, opts \\ [])
Перезагружает код текущего проекта Mix, вызывая
:reloadable_compilersдля списка:reloadable_apps.- reload!(endpoint, opts)
То же, что и
reload/1, но функция вызовет исключение, если Mix недоступен.- sync()
Синхронизируется с сервером кода, если он запущен.
Функции
Функции
call(conn, opts)Исходный код
API, используемый Plug для вызова перезагрузчика кода при каждом запросе.
init(opts)Исходный код
API, используемый Plug для запуска перезагрузчика кода.
reload(endpoint, opts \\ [])Исходный код
@spec reload(
module(),
keyword()
) :: :ok | {:error, binary()} Перезагружает код текущего проекта Mix, вызывая :reloadable_compilers для списка :reloadable_apps.
Эта функция настраивается в окружении приложения, например:
config :your_app, YourAppWeb.Endpoint, reloadable_compilers: [:gettext, :elixir], reloadable_apps: [:ui, :backend]
Обратите внимание: :reloadable_compilers должно быть подмножеством :compilers, указанных в project/0 в вашем mix.exs.
По умолчанию :reloadable_apps имеет значение nil. В этом случае по умолчанию перезагружается текущий проект, если он состоит из одного приложения, или все приложения в проекте-зонтике. Можно задать :reloadable_apps как подмножество приложений по умолчанию, чтобы перезагружать только некоторые из них, указать пустой список — чтобы фактически отключить перезагрузчик кода, или включить внешние приложения из зависимостей библиотек.
Эта функция ничего не делает и возвращает :ok, если Mix недоступен.
Перезагрузчик также следует настроить как слушатель Mix в файле mix.exs проекта (начиная с Elixir v1.18):
def project do
[
...,
listeners: [Phoenix.CodeReloader]
]
end
Так перезагрузчик сможет определить, когда проект компилируется параллельно.
Параметры
-
:reloadable_args— дополнительные аргументы командной строки, передаваемые задачам компилятора. По умолчанию используется["--no-all-warnings"], поэтому выводятся только предупреждения, связанные с компилируемыми файлами
reload!(endpoint, opts)Исходный код
@spec reload!(
module(),
keyword()
) :: :ok | {:error, binary()} То же, что и reload/1, но функция вызовет исключение, если Mix недоступен.
sync()Исходный код
@spec sync() :: :ok
Синхронизируется с сервером кода, если он запущен.
Функция возвращает :ok. Если сервер не запущен, она также возвращает :ok.
© 2014 Chris McCord
Licensed under the MIT License.
https://phoenix.hexdocs.pm/Phoenix.CodeReloader.html