Files
004.erp.generic/frontend/astro.config.mjs
mariomitte e14665d8ec fix: dev proxy za frontend API pozive
U dev modu frontend sada koristi /api preko Astro/Vite proxy sloja prema backend servisu, umjesto direktnog gađanja localhost:8001 iz browsera.\n\nTime se uklanja ERR_CONNECTION_REFUSED u lokalnom Docker development okruženju.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-17 18:58:09 +02:00

81 lines
2.2 KiB
JavaScript

// @ts-check
import { defineConfig } from 'astro/config';
import node from '@astrojs/node';
import tailwindcss from '@tailwindcss/vite';
import preact from '@astrojs/preact';
const isDev = process.env.NODE_ENV === 'development';
// CSV iz env-a: "localhost,127.0.0.1,serviseri-004.captain.mitteworkspace.cloud"
const envHosts = (process.env.PUBLIC_ALLOWED_HOSTS || '')
.split(',')
.map((h) => h.trim())
.filter(Boolean);
const allowedHosts = Array.from(
new Set(['localhost', '127.0.0.1', 'serviseri-004.captain.mitteworkspace.cloud', ...envHosts])
);
const hmrHost = process.env.PUBLIC_HMR_HOST || 'localhost';
const hmrProtocol = process.env.PUBLIC_HMR_PROTOCOL || 'ws';
const hmrClientPort = Number(process.env.PUBLIC_HMR_CLIENT_PORT || 4321);
const apiProxyTarget = process.env.PUBLIC_API_PROXY_TARGET || 'http://localhost:8001';
export default defineConfig({
output: 'server',
adapter: node({ mode: 'standalone' }),
server: {
host: true,
port: 4321,
allowedHosts,
},
vite: {
resolve: {
alias: {
react: 'preact/compat',
'react-dom': 'preact/compat',
'react-dom/test-utils': 'preact/test-utils',
'react/jsx-runtime': 'preact/jsx-runtime',
'react/jsx-dev-runtime': 'preact/jsx-dev-runtime',
},
},
define: {
__PUSHER_KEY__: JSON.stringify(process.env.PUBLIC_PUSHER_KEY || process.env.PUSHER_KEY || ''),
__PUSHER_CLUSTER__: JSON.stringify(process.env.PUBLIC_PUSHER_CLUSTER || process.env.PUSHER_CLUSTER || ''),
},
ssr: {
noExternal: ['@react-spring/web', '@react-spring/core', '@react-spring/animated', '@react-spring/shared'],
},
build: {
assetsInlineLimit: 1024,
},
plugins: [tailwindcss()],
server: isDev
? {
allowedHosts,
hmr: {
protocol: hmrProtocol, // ws ili wss
host: hmrHost,
clientPort: hmrClientPort,
},
proxy: {
'/api': {
target: apiProxyTarget,
changeOrigin: true,
},
},
watch: {
usePolling: true,
interval: 100,
},
}
: {
allowedHosts,
},
},
integrations: [preact()],
});