Files
MyClub/eshop/frontend/vite.config.ts
T
Tomas Dvorak 30d70a6aeb update
2026-03-13 14:34:19 +01:00

59 lines
1.4 KiB
TypeScript

import { defineConfig, loadEnv } from 'vite';
import react from '@vitejs/plugin-react';
function buildProcessEnv(mode: string, env: Record<string, string>, base: string) {
const processEnv: Record<string, string> = {
NODE_ENV: mode === 'production' ? 'production' : mode,
PUBLIC_URL: base === '/' ? '' : base.replace(/\/$/, ''),
};
for (const [key, value] of Object.entries(env)) {
if (key.startsWith('REACT_APP_')) {
processEnv[key] = value;
}
}
return processEnv;
}
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), '');
const base = env.PUBLIC_URL ? (env.PUBLIC_URL.endsWith('/') ? env.PUBLIC_URL : `${env.PUBLIC_URL}/`) : '/';
const processEnv = buildProcessEnv(mode, env, base);
return {
base,
publicDir: 'public',
plugins: [react()],
define: {
'process.env': JSON.stringify(processEnv),
global: 'globalThis',
},
build: {
outDir: 'build',
assetsDir: 'static',
emptyOutDir: true,
sourcemap: false,
},
server: {
host: '0.0.0.0',
port: 3100,
proxy: {
'/api': {
target: 'http://127.0.0.1:8082',
changeOrigin: true,
secure: false,
},
},
},
preview: {
host: '0.0.0.0',
port: 4174,
},
test: {
environment: 'jsdom',
globals: true,
},
};
});