import { fileURLToPath, URL } from 'node:url' import { defineConfig,loadEnv } from 'vite' import type { PluginOption } from 'vite' import vue from '@vitejs/plugin-vue' import vueDevTools from 'vite-plugin-vue-devtools' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' function setupPlugins(env: ImportMetaEnv): PluginOption[] { return [ vue(), vueDevTools(), // topLevelAwait(), AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }), ] } export default defineConfig((env) => { const viteEnv = loadEnv(env.mode, process.cwd()) as unknown as ImportMetaEnv return { base: viteEnv.VITE_GLOB_FRONT_CTX, plugins: setupPlugins(viteEnv), server: { host: '0.0.0.0', port: viteEnv.VITE_GLOB_FRONT_PORT, open: false, proxy: { [viteEnv.VITE_GLOB_API_CTX]: { target: viteEnv.VITE_GLOB_API_DEV_IP, changeOrigin: true, }, // 工具服务通过 Nginx(:18000) 反代,sub_filter 处理子资源路径 '/pdf/': { target: 'http://localhost:18000', changeOrigin: true, }, '/draw/': { target: 'http://localhost:18000', changeOrigin: true, }, }, }, build: { target: 'esnext', }, resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) }, }, } })