Thanks for your help…
New Sage install on Vagrant/Windows. All works, but:
- I must manually
yarn dev
(or yarn
) and reload my browser to see any changes to css rule changes directly in resources/styles/app.css (or any imported css file in same folder).
- If I change a .blade.php file, I can see the change if I manually reload the page (no need to re-run
yarn dev
)
- I have other Vagrant development builds that run Webpack without problem (reloading on changes, etc.)
After many hours of searching/debugging, I cannot find the magic setting/parameter to enable these included Sage functions. yarn dev --log
doesn’t show anything odd (to me). Even ChatGPT 4 couldn’t solve it.
Any hints? or debugging hints? Thanks!!
Here’s my bud.config.js custom values just in case (only including items changed from default Sage values):
xport default async (app) => {
app.setPublicPath('/app/themes/mynewtheme2023/public/');
app
.setUrl('http://192.168.2.25/')
.proxy(new URL('http://192.168.50.25'))
.setPublicProxyUrl(new URL('http://192.168.50.25'))
.setProxyUrl(new URL('http://192.168.50.25'))
// .setUrl('http://localhost:3000')
.devtool()
.watch([app.path('resources/views/**/*'),
app.path('app/**/*'), app.path('resources/styles/**/*')]);
One reason that comes to mind is that the source files are mounted into Vagrant in a way that does not allow for file notifications.
Also take a look at the new Lima feature in recent Trellis:
Thanks for taking the time to respond.
My Windows/Vagrant Webpack runs fine (auto-rebuilds/reloads) without the Roots wrappers, so I don’t know what to think. It would be nice if Sage had an option to provide some output when in dev/watch mode to help debug.
I went through the pain of rebuilding the entire stack/environment in WSL2, but the browser still does not auto-load. However, the styles DO auto-compile upon file changes there.
It seems like Roots was really built for and intended to run on Linux and/or MacBooks, so us Windows users should probably stick with the more established Webpack, Laravel, etc.
Ongoing debug… after a few more hours, realized that
- searched/found more Roots docs and ran
yarn dev --notify --debug --hot --overlay --indicator --browser --force
– new browser window does open.
- browser is trying to load from http://localhost/bud/hot/ but that path is nowhere to be found in the file system.
- hot-update.js files are created and placed in the “public” sage folder… tried to force the /bud/hot/ path to go to my ‘private’ folder (overwrite .js file, created a symlink from /bud/hot to my “public” folder), but then browser complains about the "EventSource’s response has a MIME type (“text/html”) that is not “text/event-stream” … likely not the Roots way anyway. Seems like /bud/hot should be aliased by Sage/Bud/Roots somehow.
- Still grinding away.
In the end:
-
app.setUrl()
CANNOT be set to port 80 (e.g., must be http://localhost:3001
, not http://localhost
)
- For WSL users, to enable port forwarding (thanks to this post, which contains more details):
Add the following to : C:\Users\“you”.wslconfig with the following content (yes in Windows folders)
- Would likely work on Windows Vagrant given #1 above with proper Vagrant port forwarding.
[wsl2]
localhostForwarding=true
(#1 perhaps should be added to the Roots Bud/Sage docs. #2 was difficult find, not in /etc/hosts as the Stack Overflow author observed.)
1 Like