Background
I have a fresh umbrella app and I am trying to create a Phoenix app inside it. However, even though I can create the Phoenix app inside the umbrella, I cannot build it successfully.
Problem
I am creating a phoenix app inside a fresh umbrella project like this:
mix new test_app --umbrella
cd apps
mix phx.new web_interface --no-dashboard --no-ecto --no-gettext --no-mailer --live
These commands run fine. However when I try to setup the app, something breaks:
cd web_interface
mix setup
returns:
08:14:50.318 [warning] tailwind version is not configured. Please set it in your config files:
config :tailwind, :version, “3.2.4”
Browserslist: caniuse-lite is outdated. Please run:
npx update-browserslist-db@latest
Why you should do it regularly: GitHub - browserslist/update-db: CLI tool to update caniuse-lite to refresh target browsers from Browserslist configRebuilding…
To me, this is odd. Everything is fresh new, so I was really not expecting any warning. But it gets worse. Once rebuilding is done, I get an actual error:
Done in 200ms.
08:14:52.146 [warning] esbuild version is not configured. Please set it in your config files:
config :esbuild, :version, "0.16.4"
** (RuntimeError) no arguments passed to esbuild
(esbuild 0.7.0) lib/esbuild.ex:170: Esbuild.run/2
(esbuild 0.7.0) lib/mix/tasks/esbuild.ex:49: Mix.Tasks.Esbuild.install_and_run/1
(mix 1.14.1) lib/mix/task.ex:421: anonymous fn/3 in Mix.Task.run_task/4
(mix 1.14.1) lib/mix/task.ex:479: Mix.Task.run_alias/6
(mix 1.14.1) lib/mix/cli.ex:84: Mix.CLI.run_task/2
At first I thought this was happening because I had something outdated in my machine. So I did some updates:
mix local.hex
mix archive.install hex phx_new
However, this did not fix the issue.
I am running on Windows.
Questions
- It is my understanding that if I create a new app inside an umbrella project, elixir is smart enough to detect that and I don’t need to do anything new/different. Is this the case?
- IIRC the
--live
flag became a default in Phoenix 1.6. Is this still case for 1.7? (Meaning all apps are live now, by default?) - Why am I getting this error? How can I fix it?