檢視原始碼 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_appsnil
在這種情況下,預設 behaviour 會重新載入目前的專案(如果它包含只有一個應用程式),或重新載入傘狀專案中的所有應用程式。您可以設定 :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