# `Emerge.Runtime.CodeReloader`
[🔗](https://github.com/emerge-elixir/emerge/blob/v0.2.1/lib/emerge/runtime/code_reloader.ex#L1)

Watches Elixir source files, recompiles selected Mix apps, and rerenders live viewports.

The reloader is opt-in and configured entirely through child options.

# `start_opt`

```elixir
@type start_opt() ::
  {:dirs, [Path.t()]}
  | {:reloadable_apps, [atom()]}
  | {:debounce_ms, non_neg_integer()}
  | {:watcher, module()}
  | {:watcher_opts, keyword()}
  | {:compiler, module()}
  | {:compiler_opts, keyword()}
  | {:reloadable_compilers, [atom()]}
  | {:reloadable_args, [String.t()]}
  | {:mix_listener, module() | nil}
  | GenServer.option()
```

# `child_spec`

```elixir
@spec child_spec([start_opt()]) :: Supervisor.child_spec()
```

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `start_link`

```elixir
@spec start_link([start_opt()]) :: GenServer.on_start()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
