fixed localhost polling

This commit is contained in:
2ManyProjects 2025-04-26 00:56:36 -05:00
parent e597f1caa6
commit bebc92395a

View file

@ -1,19 +1,62 @@
import { defineConfig } from 'vite'; import { defineConfig, loadEnv } from 'vite';
import react from '@vitejs/plugin-react'; import react from '@vitejs/plugin-react';
import path from 'path'; import path from 'path';
import dotenv from 'dotenv'; import fs from 'fs';
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig(({ mode }) => { export default defineConfig(({ mode }) => {
dotenv.config(); // Load env files
// Load env variables const env = loadEnv(mode, process.cwd(), '');
// Explicitly check for ENVIRONMENT in all possible places
// 1. Check env loaded by Vite
// 2. Check process.env (for Node.js environment)
// 3. Try to read from .env file directly as fallback
let environment = env.ENVIRONMENT;
if (!environment && process.env.ENVIRONMENT) {
environment = process.env.ENVIRONMENT;
}
if (!environment) {
try {
const envContent = fs.readFileSync('.env', 'utf8');
const envMatch = envContent.match(/ENVIRONMENT\s*=\s*(\w+)/);
if (envMatch && envMatch[1]) {
environment = envMatch[1];
}
} catch (error) {
// Fallback if file can't be read
console.warn('Could not read .env file directly:', error.message);
}
}
// Default to 'beta' if still not found
if (!environment) {
environment = 'beta';
}
console.log(`Vite environment detected: ${environment}`);
const isProduction = environment === 'prod';
// Configure HMR based on environment
let hmrConfig;
if (isProduction) {
// Production: use the domain name without clientPort
hmrConfig = {
host: 'rocks.2many.ca',
protocol: 'https'
};
} else {
// Development: use localhost with explicit port
hmrConfig = {
host: 'localhost',
clientPort: 3000
};
}
// Determine HMR host based on environment
const isProduction = process.env.ENVIRONMENT === "prod";
const hmrHost = isProduction ? 'rocks.2many.ca' : 'localhost';
const hmrConfig = isProduction
? { host: hmrHost }
: { host: hmrHost, clientPort: 3000 };
return { return {
plugins: [react()], plugins: [react()],
resolve: { resolve: {
@ -32,14 +75,6 @@ export default defineConfig(({mode}) => {
} }
}, },
server: { server: {
// port: 3000,
// proxy: {
// '/api': {
// target: 'http://localhost:4000',
// changeOrigin: true,
// secure: false
// }
// },
allowedHosts: ['localhost', 'rocks.2many.ca'], allowedHosts: ['localhost', 'rocks.2many.ca'],
host: '0.0.0.0', host: '0.0.0.0',
port: 3000, port: 3000,
@ -53,6 +88,10 @@ export default defineConfig(({mode}) => {
assetsDir: 'assets', assetsDir: 'assets',
emptyOutDir: true, emptyOutDir: true,
sourcemap: process.env.NODE_ENV !== 'production' sourcemap: process.env.NODE_ENV !== 'production'
},
// Make environment variables available to the client code
define: {
'import.meta.env.ENVIRONMENT': JSON.stringify(environment)
} }
} };
}); });