查看源代码 Phoenix.CodeReloader (Phoenix v1.7.14)
一个用于处理自动代码重新加载的插件和模块。
为了避免竞争条件,所有代码重新加载都通过顺序调用操作进行。
摘要
函数
Plug 使用的 API,用于在每个请求上调用代码重新加载器。
Plug 使用的 API,用于启动代码重新加载器。
通过在 :reloadable_apps
列表上调用 :reloadable_compilers
,为当前 Mix 项目重新加载代码。
这在您的应用程序环境中配置,例如
config :your_app, YourAppWeb.Endpoint,
reloadable_compilers: [:gettext, :elixir],
reloadable_apps: [:ui, :backend]
请记住,:reloadable_compilers
必须是您在 mix.exs
中 project/0
中指定的 :compilers
的子集。
:reloadable_apps
默认为 nil
。在这种情况下,默认行为是重新加载当前项目(如果它包含单个应用程序),或者重新加载伞形项目中的所有应用程序。您可以将 :reloadable_apps
设置为默认应用程序的子集,以仅重新加载其中一些应用程序,设置为空列表 - 实际上禁用代码重新加载器,或包含来自库依赖项的外部应用程序。
如果 Mix 不可用,此函数是一个空操作并返回 :ok
。
选项
:reloadable_args
- 要传递给编译器任务的额外 CLI 参数。默认为["--no-all-warnings"]
,因此只打印与正在编译的文件相关的警告
与 reload/1
相同,但如果 Mix 不可用,它将引发异常。
@spec sync() :: :ok
如果代码服务器处于活动状态,则与它同步。
它返回 :ok
。如果它没有运行,它也返回 :ok
。