简体   繁体   中英

How to start Phoenix server when you are already in iex?

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.

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)

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

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM