import vue from '@vitejs/plugin-vue'; import { resolve } from 'path'; import { defineConfig, loadEnv, ConfigEnv } from 'vite'; import vueSetupExtend from 'vite-plugin-vue-setup-extend-plus'; import viteCompression from 'vite-plugin-compression'; import { buildConfig } from './src/utils/build'; const pathResolve = (dir: string) => { return resolve(__dirname, '.', dir); }; const alias: Record = { '/@': pathResolve('./src/'), 'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js', }; const viteConfig = defineConfig((mode: ConfigEnv) => { const env = loadEnv(mode.mode, process.cwd()); return { plugins: [vue(), vueSetupExtend(), viteCompression(), JSON.parse(env.VITE_OPEN_CDN) ? buildConfig.cdn() : null], root: process.cwd(), resolve: { alias }, base: mode.command === 'serve' ? './' : env.VITE_PUBLIC_PATH, optimizeDeps: { exclude: ['vue-demi'] }, server: { host: '0.0.0.0', port: env.VITE_PORT as unknown as number, open: JSON.parse(env.VITE_OPEN), hmr: true, proxy: { '/api': { target: 'https://maxcess.gatedge.cn:91', ws: true, changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ''), }, }, }, define:{ __NEXT_NAME__:JSON.stringify(process.env.npm_package_name) } // }; }); export default viteConfig;