import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import path from 'path' export default defineConfig(({ mode }) => ({ plugins: [react() as any], resolve: { alias: { '@': path.resolve(__dirname, 'src'), '@shared': path.resolve(__dirname, '../../shared'), '@avanza-ui': path.resolve(__dirname, '../avanza-ui/src'), // Monorepo package aliases '@avanzacast/shared-hooks': path.resolve(__dirname, '../../shared/hooks'), '@avanzacast/shared-components': path.resolve(__dirname, '../../shared/components'), '@avanzacast/shared-utils': path.resolve(__dirname, '../../shared/utils'), '@avanzacast/shared-types': path.resolve(__dirname, '../../shared/types'), }, }, optimizeDeps: { // Pre-bundle shared packages so Vite can resolve them during dev include: [ '@avanzacast/shared-hooks', '@avanzacast/shared-components', '@avanzacast/shared-utils', '@avanzacast/shared-types', ], }, server: { port: 5175, host: true, fs: { // allow serving files from the monorepo root and shared folder allow: [path.resolve(__dirname, '../../')], }, proxy: { // Proxy API calls to local backend during development '/api': { target: process.env.VITE_API_URL || 'http://localhost:4000', changeOrigin: true, secure: false, rewrite: (p) => p.replace(/^\/api/, '/api'), }, }, // Allowlist hosts for preview/remote access allowedHosts: [ 'avanzacast-broadcastpanel.zuqtxy.easypanel.host', 'avanzacast-broadcastpanel.bfzqqk.easypanel.host', 'localhost', ], }, }))