sonic-pi icon indicating copy to clipboard operation
sonic-pi copied to clipboard

Also include priv/static/assets for live reload

Open Tuxified opened this issue 3 years ago • 4 comments

Hi :wave: ,

You asked on Discord why you the Live Reload doesn't work, so I played around a bit and this seems to have solved it for me (using a Linux machine):

Tailwind compiles the assets/CSS to priv/static/assets folder which wasn't included in the list of folders to watch for live_reload. This change (together with installing inotify-tools) seems to trigger live reloading when CSS gets changed.

I also include a tiny change for the next person who tries to run it without setting up correct ENV vars beforehand

Hope it helps, Tonći

Tuxified avatar Mar 10 '22 16:03 Tuxified

Ah, interesting - I had taken a quick look at that and assumed that the matcher ~r"priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$", would match priv/static/foo/bar/baz.png as the .* might have just considered the / as a standard character:

iex(4)> "/priv/static/assets/bar.js" =~ ~r"priv/static/.*(js|css)$"
true

Perhaps I'm misunderstanding things - I'm just guessing that the =~ operator (or equivalent) is used to match the patterns?

Still, I tried this - on my Windows dev machine - and it didn't affect things. .heex modifications trigger asset rebuild, .css modifications didn't. I then opened up my Mac, synced things up and found that thing happen to work perfectly there - both .css and .heex file mods trigger rebuilds without needing this change. Perhaps, for you, it was the installation of inotify-tools that fixed things?

I read that there might be some issues with tracking file changes on Windows when not running as an administrator - but it seems super weird that it should seemingly work with one type of file and not another. Perhaps there are issues having multiple watchers on Windows?

samaaron avatar Mar 10 '22 17:03 samaaron

Further to this, I just launched Sonic Pi from a Windows terminal running in Administrator mode and modifying a .css file did indeed trigger a rebuild of the assets. It almost certainly has something to do with Windows lack of symlinks.

samaaron avatar Mar 10 '22 19:03 samaaron

Hi Sam,

You're completely right, inotify-tools was actually all I needed, sorry for the confusion :see_no_evil:

I don't have access to a Windows machine so cannot check there, however digging through the deps list it seems https://github.com/falood/file_system is handling the cross-platform file watching and it mentions https://github.com/thekid/inotify-win as the inotify-tools port for Windows.

Hope that helps?

Shall I change this PR to just include the change to default secret_key_base? I'm also fine with closing this PR if it doesn't add anything :)

Tuxified avatar Mar 14 '22 09:03 Tuxified

@Tuxified no worries at all. I really don't know what I'm doing and it's all guess work on my behalf from trying to read the source.

I do think that a PR with the default secret key base change makes a lot of sense though - thanks for noticing that.

samaaron avatar Mar 15 '22 18:03 samaaron