import path from 'path' import type { PluginOption } from 'vite' import { defineConfig, loadEnv } from 'vite' import vue from '@vitejs/plugin-vue' import { VitePWA } from 'vite-plugin-pwa' import { createSvgIconsPlugin } from "vite-plugin-svg-icons"; function setupPlugins(env: ImportMetaEnv): PluginOption[] { return [ vue(), env.VITE_GLOB_APP_PWA === 'true' && VitePWA({ injectRegister: 'auto', manifest: { name: 'ChatMaster', short_name: 'chatMaster', icons: [], }, }), //启用插件 createSvgIconsPlugin({ // 指定图标文件夹,绝对路径(NODE代码) iconDirs: [path.resolve(process.cwd(), "src/assets/svgs")], }) ] } export default defineConfig((env) => { const viteEnv = loadEnv(env.mode, process.cwd()) as unknown as ImportMetaEnv return { resolve: { alias: { '@': path.resolve(process.cwd(), 'src'), }, }, plugins: setupPlugins(viteEnv), server: { host: '0.0.0.0', port: 1002, open: false, proxy: { '/api': { target: viteEnv.VITE_APP_API_BASE_URL, changeOrigin: true, // 允许跨域 rewrite: path => path.replace('/api/', '/'), }, }, }, build: { reportCompressedSize: false, sourcemap: false, commonjsOptions: { ignoreTryCatch: false, }, }, } })