And why does this depend on node / npx? Something to do with the JSX syntax and parsing?
I wish go std templates were more ergonomic for components.
Past that I wish projects like templ or GSX have a simple go generate pipeline, and support html and text/markdown output including whitespace.
Until then I have a Frankenstein of a bunch of templating.
Also I've been a long time templ & html/template user, also used templui. gsx is born out of my ergonomics desire from templ. gsxui is similar to templui, but makes bundling possible. Also borrowed pipeline filters from html/template. But you're right, this does involve a _build_ step. But I think it's worth it.
Later I'll add the bundler free version. But really, vite has been so useful. Just treat it as another tool.
EDIT: highlights are:
- live reload: it only reloads after new binary is built. also has /healthz check integration. I believe this is better than air, wgo etc
- dev panel & error overlay: see generate, build status: on syntax error, you get an error overlay explaining where the error is;
- status for slow builds: if you're working in a big project, you can see the building progress & log in the dev overlay