#how to access env in SSG mode
3 messages · Page 1 of 1 (latest)
Hi @zinc skiff. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
Based on the information provided in the extracts, it seems like you're trying to access environment variables PUBLIC_JSONURL and PUBLIC_JSONPASS using import.meta.env. This is the correct way to access environment variables in Astro, as mentioned in the Astro documentation (https://docs.astro.build/en/guides/environment-variables#getting-environment-variables).
However, please note that you cannot access import.meta.env with dynamic keys like import.meta.env**key]. Also, Astro evaluates configuration files before it loads your other files, so you can’t use import.meta.env to access environment variables that were set in .env files in a configuration file. Instead, you can use process.env or [Vite’s loadEnv helper** (https://main.vitejs.dev/config/#using-environment-variables-in-config) in a configuration file.
If you want to get TypeScript IntelliSense for these user-defined environment variables, you can create an env.d.ts in src/ and configure ImportMetaEnv like this:
interface ImportMetaEnv {
readonly PUBLIC_JSONURL: string;
readonly PUBLIC_JSONPASS: string;
// more env variables...
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}