Phoenix v1.1.3 Phoenix.CodeReloader

A plug and module to handle automatic code reloading.

For each request, Phoenix checks if any of the modules previously compiled requires recompilation via __phoenix_recompile__?/0 and then calls mix compile for sources exclusive to the web directory.

To avoid race conditions, all code reloads are funneled through a sequential call operation.

Summary

Functions

API used by Plug to invoke the code reloader on every request

API used by Plug to start the code reloader

Reloads code within the paths specified in the :reloadable_paths config for the endpoint by invoking the :reloadable_compilers

Functions

call(conn, opts)

API used by Plug to invoke the code reloader on every request.

init(opts)

API used by Plug to start the code reloader.

reload!(endpoint)

Specs

reload!(module) :: :ok | :noop | {:error, binary}

Reloads code within the paths specified in the :reloadable_paths config for the endpoint by invoking the :reloadable_compilers.

This is configured in your application environment like:

config :your_app, YourApp.Endpoint,
  reloadable_paths: ["web"],
  reloadable_compilers: [:gettext, :phoenix, :elixir]

Keep in mind that the paths passed to :reloadable_paths must be a subset of the paths specified in the :elixirc_paths option of project/0 in mix.exs while :reloadable_compilers is a subset of :compilers.