Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
1 task done
versecafe opened this issue Mar 13, 2024 · 3 comments
Open
1 task done
Labels
S-Accepted This will be worked on T-Feature Request A request for a new feature

Comments

@versecafe
Copy link

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

  • I have searched the issues and this feature has not been requested before.
@versecafe versecafe added S-Triage Awaiting decision for what to do T-Feature Request A request for a new feature labels Mar 13, 2024
@jonaro00 jonaro00 added S-Investigation This issue needs further investigation or design to figure out a solution and removed S-Triage Awaiting decision for what to do labels Mar 13, 2024
@jonaro00
Copy link
Member

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

@versecafe
Copy link
Author

@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

@jonaro00
Copy link
Member

@versecafe Installing and running node should now be possible with hook scripts on shuttle.dev: https://docs.shuttle.dev/docs/builds#experimental-hook-scripts
Would you like to give it a try?

@jonaro00 jonaro00 added S-Accepted This will be worked on and removed S-Investigation This issue needs further investigation or design to figure out a solution labels Oct 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-Accepted This will be worked on T-Feature Request A request for a new feature
Projects
None yet
Development

No branches or pull requests

2 participants