1+ /**
2+ * Demonstration of import.meta.env in Vite
3+ * This file shows what environment variables are available
4+ */
5+
6+ // Vite provides import.meta.env which contains:
7+ console . log ( '=== Vite Environment Variables ===' ) ;
8+
9+ // Built-in variables provided by Vite
10+ console . log ( 'MODE:' , import . meta. env . MODE ) ; // 'development' or 'production'
11+ console . log ( 'DEV:' , import . meta. env . DEV ) ; // true in development
12+ console . log ( 'PROD:' , import . meta. env . PROD ) ; // true in production
13+ console . log ( 'SSR:' , import . meta. env . SSR ) ; // true during server-side rendering
14+
15+ // Custom environment variables from .env files
16+ // Only variables prefixed with VITE_ are exposed to the client
17+ console . log ( 'VITE_GA_MEASUREMENT_ID:' , import . meta. env . VITE_GA_MEASUREMENT_ID ) ;
18+
19+ // BASE_URL is the public path when served in development or production
20+ console . log ( 'BASE_URL:' , import . meta. env . BASE_URL ) ;
21+
22+ // Show all available environment variables
23+ console . log ( '\n=== All Available Environment Variables ===' ) ;
24+ Object . keys ( import . meta. env ) . forEach ( key => {
25+ console . log ( `${ key } :` , import . meta. env [ key ] ) ;
26+ } ) ;
27+
28+ /**
29+ * How import.meta.env works:
30+ *
31+ * 1. Vite automatically provides import.meta.env in your code
32+ * 2. It loads variables from .env files in this order:
33+ * - .env.local (Always loaded, ignored by git)
34+ * - .env.[mode] (e.g., .env.development, .env.production)
35+ * - .env (Loaded in all cases)
36+ *
37+ * 3. Only variables prefixed with VITE_ are exposed to the client code
38+ * for security reasons
39+ *
40+ * 4. During build, Vite statically replaces import.meta.env with the actual values
41+ *
42+ * 5. You can access environment variables in your code like:
43+ * - const isDev = import.meta.env.DEV
44+ * - const apiUrl = import.meta.env.VITE_API_URL
45+ */
46+
47+ export const getEnvironment = ( ) => {
48+ return {
49+ mode : import . meta. env . MODE ,
50+ isDevelopment : import . meta. env . DEV ,
51+ isProduction : import . meta. env . PROD ,
52+ baseUrl : import . meta. env . BASE_URL ,
53+ gaMeasurementId : import . meta. env . VITE_GA_MEASUREMENT_ID ,
54+ }
55+ }
56+
57+ export default getEnvironment
0 commit comments