import { createFileRoute } from '@tanstack/react-router'; import { useEffect, useState } from 'react'; export const Route = createFileRoute('/')({ component: Home, }); function Home() { // Build-time public var (baked into bundle) const buildPublicVar = import.meta.env.VITE_BUILD_PUBLIC_VAR || 'default-value'; // Runtime vars (fetched from server API) const [runtimePrivateVar, setRuntimePrivateVar] = useState('loading...'); const [runtimePublicVar, setRuntimePublicVar] = useState('loading...'); useEffect(() => { console.log('=== Build-time Variables ==='); console.log('VITE_BUILD_PUBLIC_VAR:', buildPublicVar); // Fetch runtime vars from server API fetch('/api/env') .then((res) => res.json()) .then((data) => { setRuntimePrivateVar(data.runtimePrivateVar); setRuntimePublicVar(data.runtimePublicVar); console.log('=== Runtime Variables ==='); console.log('RUNTIME_PRIVATE_VAR:', data.runtimePrivateVar); console.log('RUNTIME_PUBLIC_VAR:', data.runtimePublicVar); }) .catch(() => { setRuntimePrivateVar('error'); setRuntimePublicVar('error'); }); }, [buildPublicVar]); return ( <>
VITE_BUILD_PUBLIC_VAR: {buildPublicVar}
RUNTIME_PRIVATE_VAR: {runtimePrivateVar}
RUNTIME_PUBLIC_VAR: {runtimePublicVar}