Javascript Errors Stop Brunch Watcher, Full Restart Required

When running mix phx.server, anytime the watcher detects a javascript syntax error I get the standard js error message in the console, but any subsequent script changes don’t trigger a recompile. In order to get scripts to recompile I have to Ctrl-c and restart the server. It makes accidental syntax errors really frustrating. I have a feeling thing isn’t intended behavior.

This is also happening on a fresh 1.3 install using mix phx.new without any changes made, so I don’t think it is my application code.

Any idea what could be going on here?

2 Likes

I’m not sure what you are talking about. I’ve never experienced phx.server doing anything related to brunch in any environment.

Also I can’t find anything in phoenix or generated code which refers to using brunch on app start.

If doing JS-stuff I use a second terminal which has brunch watch running. But I do prefer to just do not do anything JS related and if I had to touch a single file, I just do a single build, hoping I’m ready to go.

Maybe I should specify that this using the dev environment. In the default config/dev.exs generated by phx.new there is a :watchers config field where you can specify external watchers. By default it includes brunch.

After the watcher encounters an error in one of the watched scripts the watcher will stop detecting further changes, and the only way to restart the watcher in this case is to restart the server.

I’ve figured out what was causing the watcher to crash. By default brunch will try to show errors with desktop notifications using notify-send. My dev environment is headless and doesn’t have notify-send installed which causes the watcher to crash on error. This can be avoided by adding notifications: false to brunch-config.js

4 Likes

Very cool you found this option!!! This was really a pain in the *ss for me, but I was not willing enough to ask the community or dig it a little more!! Thanks so much!

1 Like

I develop exclusive within docker containers. Glad to find this fix of “notifications: false”, but it’s ridiculous that the watcher crashes just because my dev env can’t do the notify-send thing. A pull request to phoenix is needed to harden this up.

1 Like