Umbrella apps with unrelated directory

Hello everyone,

I am building an umbrella application with a react frontend in the apps directory.

This directory is not an elixir project, it does contains webpack and react stuff.

When I start the elixir application, I receive the following error.

warning: path "apps/go_base_ui" is a directory but it has no mix.exs. Mix won't consider this directory as part of your umbrella application. Please add a "mix.exs" or set the ":apps" key in your umbrella configuration with all relevant apps names as atoms

It is working, as it is a warning, but is it possible to tell elixir to ignore this directory, and get rid of this error?

Or what kind of empty mix.exs file can I put just to do nothing?

I googled for apps" key in your umbrella configuration but found nothing relevant.

Thanks for taking time

1 Like

There are two keys you can set in your mix.exs in order to specify your umbrella apps:
:apps_path and :apps.

:apps_path is the directory in which Mix will look for your umbrella apps.
:apps can be a list of atoms with the names of the apps you want to include. If it is not set, Mix will try to find an application in every subdirectory of :apps_path.

So, if you only want to include an application called “foo” in your “apps” directory, your configuration would need to look like this:

app_path: "apps",
apps: [:foo]

Unfortunately, this is not documented very well, the only bit of documentation is for Mix.Project.apps_paths/1: https://hexdocs.pm/mix/Mix.Project.html#apps_paths/1

Maybe you could also look into moving your non-Elixir applications somewhere else. I think it might be confusing for other people looking at your code who would expect Elixir projects inside your “apps” folder.

5 Likes

I could not find any references. I will move the frontend at the root of the umbrella.

Thank You very much for your answer.

Looking for how to selectively start apps in umbrella project for days , and finally found this answer,
thank you

1 Like