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 { fileURLToPath, URL } from 'node:url' // https://vite.dev/config/ export default defineConfig({ base: '/admin/', plugins: [ vue(), AutoImport({ resolvers: [ElementPlusResolver()], imports: ['vue', 'vue-router', 'pinia'], dts: 'src/auto-imports.d.ts', }), Components({ resolvers: [ElementPlusResolver()], dts: 'src/components.d.ts', }), ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), }, }, server: { host: '0.0.0.0', port: 5173, // 端口被占时直接报错退出,而不是静默换端口导致浏览器看到旧实例 strictPort: true, proxy: { // Swagger 挂载在后端 /api/docs(不走去掉 /api 前缀的改写),需放在 '/api' 之前 '/api/docs': { target: 'http://127.0.0.1:3001', changeOrigin: true, }, '/api': { target: 'http://127.0.0.1:3001', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ''), }, '/uploads': { target: 'http://127.0.0.1:3001', changeOrigin: true, }, '/assets': { target: 'http://127.0.0.1:3001', changeOrigin: true, }, }, }, })