import { fileURLToPath, URL } from 'node:url' import Vue from '@vitejs/plugin-vue' import { defineConfig, loadEnv } from 'vite' import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify' // https://vitejs.dev/config/ export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd(), '') // Local dev: proxy to uvicorn :8600 (override via frontend/.env.development) const apiTarget = env.VITE_DEV_API_PROXY || 'http://127.0.0.1:8600' const wsTarget = apiTarget.replace(/^https:/i, 'wss:').replace(/^http:/i, 'ws:') return { plugins: [ Vue({ template: { transformAssetUrls }, }), Vuetify({ autoImport: true, styles: { configFile: 'src/styles/settings.scss', }, }), ], define: { 'process.env': {} }, resolve: { alias: { '@': fileURLToPath(new URL('src', import.meta.url)), }, extensions: ['.js', '.json', '.jsx', '.mjs', '.ts', '.tsx', '.vue'], }, base: '/app/', build: { outDir: fileURLToPath(new URL('../web/app', import.meta.url)), emptyOutDir: false, }, server: { port: 3000, proxy: { '/api': { target: apiTarget, changeOrigin: true, secure: false, }, '/ws': { target: wsTarget, ws: true, changeOrigin: true, secure: false, }, }, }, } })