45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
import { defineConfig, loadEnv } from 'vite'
|
|
import vue from '@vitejs/plugin-vue'
|
|
import { fileURLToPath, URL } from 'node:url'
|
|
|
|
// 与主项目 frontend 的 /ai-web 代理一致;可通过 VITE_APP_BASE 覆盖
|
|
export default defineConfig(async ({ mode }) => {
|
|
const env = loadEnv(mode, process.cwd(), '')
|
|
const base = env.VITE_APP_BASE || '/ai-web/'
|
|
|
|
const useHttps = process.argv.includes('--https') || env.VITE_HTTPS === 'true'
|
|
let sslPlugin = []
|
|
if (useHttps) {
|
|
try {
|
|
const basicSsl = (await import('@vitejs/plugin-basic-ssl')).default
|
|
sslPlugin = [basicSsl()]
|
|
} catch {
|
|
/* basicSsl not installed, skip */
|
|
}
|
|
}
|
|
|
|
return {
|
|
base,
|
|
plugins: [vue(), ...sslPlugin],
|
|
resolve: {
|
|
alias: {
|
|
'@': fileURLToPath(new URL('./src', import.meta.url))
|
|
}
|
|
},
|
|
server: {
|
|
port: 3001,
|
|
host: '0.0.0.0',
|
|
proxy: {
|
|
'/api': {
|
|
target: 'http://localhost:8080',
|
|
changeOrigin: true
|
|
},
|
|
'/ws': {
|
|
target: 'http://localhost:8080',
|
|
ws: true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|