0
votes

I know we can launch iex -S mix phoenix.server. But say I am already in iex -S mix. What can I do to get the server started?

Thank you.

3
I would open another terminal and then start the server.enlego

3 Answers

1
votes

It's maybe not a great way of doing it, but I'm imagining you're only doing this in dev anyway. But one way of doing it would be to set the same config option mix phx.server sets then restarting your endpoint (this example stops it and lets the app supervisor restart it).

iex> Application.put_env(:phoenix, :serve_endpoints, true)
:ok
iex> GenServer.stop(MyAppWeb.Endpoint)
:ok
[info] Running MyAppWeb.Endpoint with cowboy 2.9.0 at 0.0.0.0:4000 (http)
0
votes

Just start running as iex -S mix phx.server, then both iex and your application will run together

-2
votes

I'm sorry to tell you that this cannot be done.

See this discussion for reference: https://elixirforum.com/t/mix-task-run-deps-compile-dep-name-force-not-compiling/12114/4

I quote:

Mix is not intended to be called from iex or inside of your application. The primary interface is the CLI and because of this tasks are allowed to only run once.