查看源代码 Phoenix.CodeReloader (Phoenix v1.7.14)

一个用于处理自动代码重新加载的插件和模块。

为了避免竞争条件,所有代码重新加载都通过顺序调用操作进行。

摘要

函数

Plug 使用的 API,用于在每个请求上调用代码重新加载器。

Plug 使用的 API,用于启动代码重新加载器。

通过在 :reloadable_apps 列表上调用 :reloadable_compilers,为当前 Mix 项目重新加载代码。

reload/1 相同,但如果 Mix 不可用,它将引发异常。

如果代码服务器处于活动状态,则与它同步。

函数

Plug 使用的 API,用于在每个请求上调用代码重新加载器。

Plug 使用的 API,用于启动代码重新加载器。

指向此函数的链接

reload(endpoint, opts \\ [])

查看源代码
@spec reload(
  module(),
  keyword()
) :: :ok | {:error, binary()}

通过在 :reloadable_apps 列表上调用 :reloadable_compilers,为当前 Mix 项目重新加载代码。

这在您的应用程序环境中配置,例如

config :your_app, YourAppWeb.Endpoint,
  reloadable_compilers: [:gettext, :elixir],
  reloadable_apps: [:ui, :backend]

请记住,:reloadable_compilers 必须是您在 mix.exsproject/0 中指定的 :compilers 的子集。

:reloadable_apps 默认为 nil。在这种情况下,默认行为是重新加载当前项目(如果它包含单个应用程序),或者重新加载伞形项目中的所有应用程序。您可以将 :reloadable_apps 设置为默认应用程序的子集,以仅重新加载其中一些应用程序,设置为空列表 - 实际上禁用代码重新加载器,或包含来自库依赖项的外部应用程序。

如果 Mix 不可用,此函数是一个空操作并返回 :ok

选项

  • :reloadable_args - 要传递给编译器任务的额外 CLI 参数。默认为 ["--no-all-warnings"],因此只打印与正在编译的文件相关的警告
@spec reload!(
  module(),
  keyword()
) :: :ok | {:error, binary()}

reload/1 相同,但如果 Mix 不可用,它将引发异常。

@spec sync() :: :ok

如果代码服务器处于活动状态,则与它同步。

它返回 :ok。如果它没有运行,它也返回 :ok