import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' import path from 'node:path' function configuredPort(name: 'FRONTEND_PORT' | 'BACKEND_PORT', fallback: number) { const port = Number(process.env[name] ?? fallback) if (!Number.isInteger(port) || port < 1 || port > 65535) { throw new Error(`${name} must be an integer between 1 and 65535`) } return port } const frontendPort = configuredPort('FRONTEND_PORT', 16801) const backendPort = configuredPort('BACKEND_PORT', 17861) // https://vite.dev/config/ export default defineConfig({ plugins: [ vue(), AutoImport({ resolvers: [ElementPlusResolver({ importStyle: 'css' })], }), Components({ resolvers: [ElementPlusResolver({ importStyle: 'css' })], }), ], resolve: { alias: { '@': path.resolve(__dirname, 'src'), }, }, server: { port: frontendPort, strictPort: true, proxy: { // 一键启动脚本会将 YAML 中的后端端口注入当前 Vite 进程。 '/modelTF': { target: `http://127.0.0.1:${backendPort}`, changeOrigin: true, }, }, }, })