Is there any difference between mix run
and mix phx.server
in a phoenix project?
1 Like
mix phx.server
also sets the configuration flag to actually start HTTP as by default Phoenix starts without HTTP listeners (which is behaviour of mix run
).
5 Likes
Let’s find it out!
The phx.server
doc gives the link to the source code
Application.put_env(:phoenix, :serve_endpoints, true, persistent: true)
You can search serve_endpoints
internal config option, which is used at the supervisor
def server?(conf) when is_list(conf) do
Keyword.get(conf, :server, Application.get_env(:phoenix, :serve_endpoints, false))
end
So it loads :server
config, or fall backs to serve_endpoints
option! You can see :server
config is set at config/test.exs
and config/runtime.exs
.
Another option set by phx.server
is --no-halt
to mix run
.
So… mix phx.server
is equivalent to PHX_SERVER=1 mix run --no-halt
basically.
5 Likes