reactjs - vite miljøvariabel returnerer undefined i produksjon med vercel
Vite.config.ts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
});
og dette er .env-filen:
VITE_API_KEY = "someKey"
VITE_API_BASE_URL = "baseurl"
Jeg bruker variablene i prosjektet mitt på denne måten:
const BASE_URL = import.meta.env.VITE_API_BASE_URL;
const key = import.meta.env.VITE_API_KEY;
console.log(BASE_URL , key)
Dette fungerer bra på min localhost, men når jeg distribuerer prosjektet på Vercel, går appen i stykker, og console.log(BASE_URL, key) gir meg undefined undefined. Noen idé? Dette er mitt første prosjekt på Vite, og jeg har utforsket noen lignende spørsmål, men løste ikke problemet mitt.
Svar #1
Min løsning var å definere dem inne i definedConfig-funksjonen i vite.config.ts-filen. Noe som dette
export default defineConfig({
plugins: [react()],
define: {
"process.env": process.env,
ENV_KEY: process.env.ENV_KEY,
},
});
Og jeg kan nå bruke det
someObj: {
key: import.meta.env.ENV_KEY,
},
Jeg er ikke helt sikker på om det er nødvendig å definere process.env innenfor funksjonen
- https://vercel.com/docs/frameworks/vite#environment-variables
- https://vitejs.dev/config/#using-environment-variables-in-config
Svar #2
For å deklarere en miljøvariabel for Vercel-distribusjonen din, gå til siden for miljøvariabler i Prosjektinnstillinger på Vercel-dashboardet. Derfra kan du skrive inn nøkkel-/verdiparene for miljøvariablene dine og klikke 'Legg til' for å legge dem til prosjektet.
Du kan deretter få tilgang til dem som import.meta.env.VITE_API_KEY
Du kan se hvordan du setter miljøvariabler i Vercel-dokumentasjonen på følgende lenke: https://vercel.com/docs/concepts/projects/environment-variables
