import vue from '@vitejs/plugin-vue' import { fileURLToPath, URL } from 'node:url' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' import { defineConfig, loadEnv } from 'vite' const DEFAULT_PROXY_TARGET = 'http://192.168.3.230:18000' // https://vite.dev/config/ export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd(), '') const proxyTarget = (env.VITE_API_PROXY_TARGET || DEFAULT_PROXY_TARGET).trim().replace(/\/+$/, '') return { plugins: [ vue(), AutoImport({ resolvers: [ElementPlusResolver()], dts: 'src/types/auto-imports.d.ts', }), Components({ resolvers: [ElementPlusResolver({ importStyle: 'sass' })], dts: 'src/types/components.d.ts', }), ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), }, }, server: { host: true, port: 5173, open: true, allowedHosts: true, proxy: { '/base': { target: proxyTarget, changeOrigin: true, secure: false, }, '/trade': { target: proxyTarget, changeOrigin: true, secure: false, }, '/product': { target: proxyTarget, changeOrigin: true, secure: false, }, '/api': { target: proxyTarget, changeOrigin: true, secure: false, }, }, }, preview: { host: true, port: 5173, allowedHosts: true, }, css: { preprocessorOptions: { scss: { additionalData: `@use "@/styles/mixins/respond" as *;\n`, }, }, }, } })