astro
astro copied to clipboard
🐛 BUG: Can't overwrite vite's MODE environment variable
What version of astro
are you using?
v1.0.0-beta.27
Are you using an SSR adapter? If so, which one?
None
What package manager are you using?
yarn
What operating system are you using?
Linux
Describe the Bug
I wanna open this issue saying that I wasn't able to find out if this really a bug or it's designed like that, but since the docs mentions this:
Astro uses Vite for environment variables, and allows you to use any of its methods to get and set environment variables.
I'm struggling to find a way to overwrite the MODE
environment variable to any value other than production
or development
(in my case, I need staging
). What I was able to find is that the build
script already expects this option as seen here but the CLI never provides it.
It seems that a --mode
flag to the build command like vite's already solves the problem, but I came to ask because as I said, I don't know if this is a bug or if it is desired.
Thanks!
Link to Minimal Reproducible Example
https://stackblitz.com/edit/github-ueaw7y?file=package.json,src%2Fpages%2Findex.astro&on=stackblitz
Participation
- [X] I am willing to submit a pull request for this issue.
I think this is a case where we are not providing the mode
you passed in. https://github.com/withastro/astro/blob/1acbcaba9e05ef376ba8f2e550a0ab5bbad35efe/packages/astro/src/core/build/static-build.ts#L125
Thanks, @matthewp! I didn't see this step!
If you don't mind I would like to give it a try :)
This just came up on docs triage — may be something we want to revisit?
Tagging @bholmesdev as he had some good use cases where you’d want to pass custom modes to Vite.
Yep! Just discovered some added utility from custom Vite modes beyond the import.meta.env.MODE
too. Namely, allowing custom environment variable extensions like .env.staging
. Would like to support everything documented on the Vite 3 page!