Browse Source

refactor(dashboard): Update Vite configuration to load environment variables dynamically

David Höck 9 months ago
parent
commit
3df0194919
1 changed files with 30 additions and 25 deletions
  1. 30 25
      packages/dashboard/vite.config.mts

+ 30 - 25
packages/dashboard/vite.config.mts

@@ -1,33 +1,38 @@
 import { vendureDashboardPlugin } from './vite/vite-plugin-vendure-dashboard.js';
 import path from 'path';
 import { pathToFileURL } from 'url';
+import { loadEnv } from 'vite';
 import { defineConfig } from 'vitest/config';
 
-const adminApiHost = process.env.VITE_ADMIN_API_HOST || 'http://localhost';
-const adminApiPort = process.env.VITE_ADMIN_API_PORT ? +process.env.VITE_ADMIN_API_PORT : 'auto';
-
-process.env.IS_LOCAL_DEV = adminApiHost.includes('localhost') ? 'true' : 'false';
-
-console.log('Admin API Connection Info', {
-    adminApiHost,
-    adminApiPort,
-    isLocalDev: process.env.IS_LOCAL_DEV,
-});
-
 /**
  * This config is used for local development
  */
-export default defineConfig({
-    test: {
-        globals: true,
-        environment: 'jsdom',
-    },
-    plugins: [
-        vendureDashboardPlugin({
-            vendureConfigPath: pathToFileURL('./sample-vendure-config.ts'),
-            adminUiConfig: { apiHost: adminApiHost, apiPort: adminApiPort },
-            // gqlTadaOutputPath: path.resolve(__dirname, './graphql/'),
-            tempCompilationDir: path.resolve(__dirname, './.temp'),
-        }) as any,
-    ],
-});
+export default ({ mode }: { mode: string }) => {
+    process.env = { ...process.env, ...loadEnv(mode, process.cwd()) };
+
+    const adminApiHost = process.env.VITE_ADMIN_API_HOST || 'http://localhost';
+    const adminApiPort = process.env.VITE_ADMIN_API_PORT ? +process.env.VITE_ADMIN_API_PORT : 'auto';
+
+    process.env.IS_LOCAL_DEV = adminApiHost.includes('localhost') ? 'true' : 'false';
+
+    console.log('Admin API Connection Info', {
+        adminApiHost,
+        adminApiPort,
+        isLocalDev: process.env.IS_LOCAL_DEV,
+    });
+
+    return defineConfig({
+        test: {
+            globals: true,
+            environment: 'jsdom',
+        },
+        plugins: [
+            vendureDashboardPlugin({
+                vendureConfigPath: pathToFileURL('./sample-vendure-config.ts'),
+                adminUiConfig: { apiHost: adminApiHost, apiPort: adminApiPort },
+                // gqlTadaOutputPath: path.resolve(__dirname, './graphql/'),
+                tempCompilationDir: path.resolve(__dirname, './.temp'),
+            }) as any,
+        ],
+    });
+};