檢視原始碼 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
。
在這種情況下,預設 behaviour 會重新載入目前的專案(如果它包含只有一個應用程式),或重新載入傘狀專案中的所有應用程式。您可以設定 :reloadable_apps
為預設應用程式的子集,以只重新載入其中一部分,也可以設定為空清單(實際上會停用重新載入碼),或包含函式庫依賴項中的外部應用程式。
如果 Mix 沒有作用,這個函式將無操作並傳回 :ok
。
選項
:reloadable_args
- 要傳遞給編譯器任務的其他 CLI 引數。預設為["--no-all-warnings"]
,因此只會印出與正在編譯的檔案相關的警告
和 reload/1
相同,但如果 Mix 沒有作用的話會引發錯誤。
@spec sync() :: :ok
如果碼伺服器仍然啟動,就與其同步。
它會傳回 :ok
。
如果它沒有執行,它也會傳回 :ok
。