Phoenix: Mix phx.new is inconsistent for umbrella projects (new vs existing)

Created on 22 May 2017  ยท  2Comments  ยท  Source: phoenixframework/phoenix

Environment

  • Elixir version (elixir -v): 1.4.4
  • Phoenix version (mix deps): 1.3.0-rc.2
  • NodeJS version (node -v): 7.9.0
  • NPM version (npm -v): 4.2.0
  • Operating system: OS Sierra

Expected behavior

When generating a new Phoenix project inside an existing umbrella app, the file structure should be the same as if I was starting a new Phoenix project as umbrella from scratch.

Actual behavior

Running mix phx.new app_name_web inside app_name/apps generates file structure as a non-umbrella app, even mix.exs is set up as umbrella in project/0.

Following file structure (from /lib from the hello_web app) if I start from scratch with --umbrella a brand new project:

โ”œโ”€โ”€ hello_web
โ”‚ย ย  โ”œโ”€โ”€ application.ex
โ”‚ย ย  โ”œโ”€โ”€ channels
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ user_socket.ex
โ”‚ย ย  โ”œโ”€โ”€ controllers
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ page_controller.ex
โ”‚ย ย  โ”œโ”€โ”€ endpoint.ex
โ”‚ย ย  โ”œโ”€โ”€ gettext.ex
โ”‚ย ย  โ”œโ”€โ”€ router.ex
โ”‚ย ย  โ”œโ”€โ”€ templates
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ layout
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ app.html.eex
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ page
โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ index.html.eex
โ”‚ย ย  โ””โ”€โ”€ views
โ”‚ย ย      โ”œโ”€โ”€ error_helpers.ex
โ”‚ย ย      โ”œโ”€โ”€ error_view.ex
โ”‚ย ย      โ”œโ”€โ”€ layout_view.ex
โ”‚ย ย      โ””โ”€โ”€ page_view.ex
โ””โ”€โ”€ hello_web.ex

Following file structure (from /lib) if I generate a new Phoenix app inside an existing umbrella project, running the generator inside apps folder with mix phx.new app_name_web:

โ””โ”€โ”€ app_name_web
    โ”œโ”€โ”€ application.ex
    โ””โ”€โ”€ web
        โ”œโ”€โ”€ channels
        โ”‚ย ย  โ””โ”€โ”€ user_socket.ex
        โ”œโ”€โ”€ controllers
        โ”‚ย ย  โ””โ”€โ”€ page_controller.ex
        โ”œโ”€โ”€ endpoint.ex
        โ”œโ”€โ”€ gettext.ex
        โ”œโ”€โ”€ router.ex
        โ”œโ”€โ”€ templates
        โ”‚ย ย  โ”œโ”€โ”€ layout
        โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ app.html.eex
        โ”‚ย ย  โ””โ”€โ”€ page
        โ”‚ย ย      โ””โ”€โ”€ index.html.eex
        โ”œโ”€โ”€ views
        โ”‚ย ย  โ”œโ”€โ”€ error_helpers.ex
        โ”‚ย ย  โ”œโ”€โ”€ error_view.ex
        โ”‚ย ย  โ”œโ”€โ”€ layout_view.ex
        โ”‚ย ย  โ””โ”€โ”€ page_view.ex
        โ””โ”€โ”€ web.ex

Most helpful comment

Closing this issue, the expected behavior can be achieved with mix phx.new.web generator inside app_name/apps folder. Awesome!

All 2 comments

Closing this issue, the expected behavior can be achieved with mix phx.new.web generator inside app_name/apps folder. Awesome!

Yes, exactly :)

Was this page helpful?
0 / 5 - 0 ratings