簡體   English   中英

Elixir應用程序在iex中運行,但需要添加:eex作為依賴項以作為發布運行

[英]Elixir app runs in iex, but need to add :eex as a dependency to run as a release

我創建了一個使用Plug.Debugger的簡單Cowboy / Plug應用程序。

這些是我在mix.exs運行時依賴mix.exs

extra_applications: [:cowboy, :plug, :logger]

我通過mix release使用Distillery來產生釋放。

iex -S mix和運行發布都可以很好地啟動應用程序,但是當發生錯誤時它們會有所不同。 對於iex會話, Debugger正確處理錯誤,但是對於發布,我收到以下錯誤:

** (UndefinedFunctionError) function EEx.Engine.fetch_assign!/2 is undefined (module EEx.Engine is not available)

我假設Plug.Debugger使用EEx來格式化輸出。

我可以通過添加解決這個問題:eexextra_applicationsmix.exs ,重建的釋放和重新運行。

為什么:eex需要作為依賴項列出作為發布的一部分運行,但不是從iex運行時?

Elixir運行時向OTP 添加了一些內部應用程序

 @elixir_apps ~w(eex elixir ex_unit iex logger mix)a

還可以從iex控制台等執行Logger.log 。由Distillery構建的OTP運行時不包括這些應用程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM