import { defineConfig, loadEnv } from 'vite' import vue from '@vitejs/plugin-vue' import { resolve } from 'path' import Components from 'unplugin-vue-components/vite' import { VantResolver } from 'unplugin-vue-components/resolvers' const DEFAULT_BUILD_BASE = '/bxztapp/' const normalizeBasePath = (value) => { if (!value || value === '/') { return '/' } let base = value.trim() if (!base.startsWith('/')) { base = `/${base}` } if (!base.endsWith('/')) { base = `${base}/` } return base } const resolveCliBase = () => { const argv = process.argv || [] const directFlagIndex = argv.indexOf('--base') if (directFlagIndex !== -1 && argv[directFlagIndex + 1]) { return argv[directFlagIndex + 1] } const customFlagIndex = argv.indexOf('--basePath') if (customFlagIndex !== -1 && argv[customFlagIndex + 1]) { return argv[customFlagIndex + 1] } const equalArg = argv.find(arg => arg.startsWith('--base=')) if (equalArg) { return equalArg.split('=')[1] } const equalCustomArg = argv.find(arg => arg.startsWith('--basePath=')) if (equalCustomArg) { return equalCustomArg.split('=')[1] } return undefined } export default defineConfig(({ command, mode }) => { const env = loadEnv(mode, process.cwd(), '') const baseCandidate = command === 'build' ? resolveCliBase() ?? env.VITE_BASE_PATH ?? env.BASE_PATH ?? process.env.BASE_PATH ?? DEFAULT_BUILD_BASE : '/' return { base: process.env.NODE_ENV === 'production' ? normalizeBasePath(baseCandidate) : '/', plugins: [ vue(), Components({ resolvers: [VantResolver()] }) ], resolve: { alias: { '@': resolve(__dirname, 'src'), '@shared': resolve(__dirname, '../shared') } }, server: { port: 8080, host: '0.0.0.0', open: true, proxy: { '/snow-ops-platform': { target: 'http://8.137.54.85:8661/', changeOrigin: true, }, } }, build: { outDir: 'dist', assetsDir: 'assets', sourcemap: false } } })