shuttle icon indicating copy to clipboard operation
shuttle copied to clipboard

[Feature]: Support node during build step for building static frontends

Open versecafe opened this issue 11 months ago • 2 comments

Describe the feature

Support Node 18 & 20 lts for building static HTML/CSS/JS which is served by a rust process, example being Astrox where node is needed in the build step with Astro to produce static files which are then served by an axum backend which also provides the backend API. This would be extremely useful as Node based tooling still makes up the bulk of modern UI development and with static site generators like astro becoming more and more popular this could allow shuttle to fit the niche in web hosting that currently Vercel & Netlify completely miss

Suggestion or Example of how the feature would be used

shuttle.toml supporting some additional build steps that may call on in this case node to build out static files which are then served by a rust binary, example project given above

Duplicate declaration

  • [X] I have searched the issues and this feature has not been requested before.

versecafe avatar Mar 13 '24 05:03 versecafe

Great suggestion! We will try supporting it in the new builder #1547

jonaro00 avatar Mar 13 '24 08:03 jonaro00

@jonaro00 Since the build containers are linux based maybe integrating just some wrapping over nvm and default enabling corepack to allow simple tooling like below

[tools]
node = { version = "20.11.1", script = "npm install && npm run build" }
node = { version = "20", flags = ["lts", "corepack"], script = "pnpm i && pnpm build" }

or automatically check for build script and automatically install deps based off given lock file and default to npm like vercel does

versecafe avatar Mar 13 '24 18:03 versecafe