- Remove loadEnv() double-loading in Vite configuration - Use unifiedConfig directly for all environment variables - Add additional config variables for better frontend access - Eliminates configuration conflicts and reduces complexity - Provides cleaner, more predictable build process
84 lines
2.8 KiB
TypeScript
84 lines
2.8 KiB
TypeScript
import path from 'path';
|
|
import { defineConfig } from 'vite';
|
|
import { unifiedConfig } from './config/unified.config';
|
|
|
|
export default defineConfig(() => {
|
|
// Use unified config as the single source of truth
|
|
const config = unifiedConfig;
|
|
|
|
return {
|
|
define: {
|
|
// Application configuration from unified config
|
|
'import.meta.env.VITE_APP_NAME': JSON.stringify(config.app.name),
|
|
'import.meta.env.VITE_APP_VERSION': JSON.stringify(config.app.version),
|
|
'import.meta.env.VITE_BASE_URL': JSON.stringify(config.app.baseUrl),
|
|
|
|
// Database configuration from unified config
|
|
'import.meta.env.VITE_COUCHDB_URL': JSON.stringify(config.database.url),
|
|
'import.meta.env.VITE_COUCHDB_USER': JSON.stringify(
|
|
config.database.username
|
|
),
|
|
'import.meta.env.VITE_COUCHDB_PASSWORD': JSON.stringify(
|
|
config.database.password
|
|
),
|
|
|
|
// Email configuration from unified config
|
|
'import.meta.env.VITE_MAILGUN_API_KEY': JSON.stringify(
|
|
config.email.mailgun?.apiKey || ''
|
|
),
|
|
'import.meta.env.VITE_MAILGUN_DOMAIN': JSON.stringify(
|
|
config.email.mailgun?.domain || ''
|
|
),
|
|
'import.meta.env.VITE_MAILGUN_FROM_NAME': JSON.stringify(
|
|
config.email.fromName
|
|
),
|
|
'import.meta.env.VITE_MAILGUN_FROM_EMAIL': JSON.stringify(
|
|
config.email.fromEmail
|
|
),
|
|
|
|
// OAuth configuration from unified config
|
|
'import.meta.env.VITE_GOOGLE_CLIENT_ID': JSON.stringify(
|
|
config.oauth.google?.clientId || ''
|
|
),
|
|
'import.meta.env.VITE_GITHUB_CLIENT_ID': JSON.stringify(
|
|
config.oauth.github?.clientId || ''
|
|
),
|
|
|
|
// Feature flags from unified config
|
|
'import.meta.env.ENABLE_EMAIL_VERIFICATION': JSON.stringify(
|
|
config.features.enableEmailVerification
|
|
),
|
|
'import.meta.env.ENABLE_OAUTH': JSON.stringify(
|
|
config.features.enableOAuth
|
|
),
|
|
'import.meta.env.ENABLE_ADMIN_INTERFACE': JSON.stringify(
|
|
config.features.enableAdminInterface
|
|
),
|
|
'import.meta.env.DEBUG_MODE': JSON.stringify(config.features.debugMode),
|
|
|
|
// Environment info
|
|
'import.meta.env.NODE_ENV': JSON.stringify(config.app.environment),
|
|
'import.meta.env.IS_PRODUCTION': JSON.stringify(
|
|
config.app.environment === 'production'
|
|
),
|
|
'import.meta.env.IS_DEVELOPMENT': JSON.stringify(
|
|
config.app.environment === 'development'
|
|
),
|
|
|
|
// Additional configurations
|
|
'import.meta.env.VITE_USE_MOCK_DB': JSON.stringify(
|
|
config.database.useMock
|
|
),
|
|
'import.meta.env.VITE_LOG_LEVEL': JSON.stringify(config.logging.level),
|
|
'import.meta.env.VITE_ENABLE_MONITORING': JSON.stringify(
|
|
config.features.enableMonitoring
|
|
),
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'@': path.resolve(__dirname, '.'),
|
|
},
|
|
},
|
|
};
|
|
});
|