Jayshua

Jayshua

How does esbuild find Phoenix.js?

I was exploring the new esbuild system in Phoenix. The documentation suggests that the two ways to import third-party libraries are by putting them in a vendor folder or by using npm install. However, the app generated by phx.new doesn’t appear to do either of those when importing the phoenix & phoenix liveview js. (Although it does use the first method to import the topbar library.)

Based on the output js file, it looks like esbuild is finding the js libraries in the deps directory, but I haven’t been able to find any config or code telling esbuild to look there.

How does this work?

Marked As Solved

Also Liked

josevalim

josevalim

Creator of Elixir

We also set an environment variable in the esbuild config pointing to Elixir deps folder, and esbuild also looks for files in there. I am on my phone but I can give a full reference tomorrow.

josevalim

josevalim

Creator of Elixir

Yes, correct.

Last Post!

dhanson

dhanson

I have an elixir json-api; We never converted from brunch to webpack. We added liveview dashboard for our production support/ issue resolution. In the normal course of actions we were upgrading our deps . we went from phoenix 1.5.0 to current to see what happened (way behind I know but we went live and had some issues to deal with…) All was good locally in dev after the deps upgrade; (we forgot to do the brunch rebuild of assets locally). CI caught that and threw an error about ES6 syntax in the phx javascript. We spent a day trying to figure out how to configure brunch to support that, and then said let’s go to webpack, then found that esbuild was the new and improved way to do this. It is fast, but we have an issue;

We have an SPA served from a different port/server, and on ‘start’ the app tries to open a socket on the SPA port. This thread looks like the right place to start to track this down. We have been trying to go back versions to get to a place where this socket behavior does not happen, with no luck. We removed the env: statement in the config.exs and that did not fix the socket connect behavior.

Any suggestions on where to look? I figure We cannot be the only SPA / phoenix API & Dashboard implementation. Do we just go back and never upgrade deps ever? or is this really and esbuild related issue? TIA.

Where Next?

Popular in Questions Top

lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New

Other popular topics Top

JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 55125 245
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New

We're in Beta

About us Mission Statement