import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import { resolve, dirname } from 'path' import { fileURLToPath } from 'url' const __filename = fileURLToPath(import.meta.url) const __dirname = dirname(__filename) export default defineConfig(({ mode }) => ({ // 开发和生产环境都通过nginx代理访问/bidding base: '/bidding/', plugins: [ vue({ script: { defineModel: true, propsDestructure: true } }), vueJsx() ], define: { __VUE_OPTIONS_API__: true, __VUE_PROD_DEVTOOLS__: true, __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: true }, resolve: { alias: { '@': resolve(__dirname, 'src') } }, server: { port: 7002, host: true, cors: true, open: '/bidding/', // 开发时自动打开到 /bidding/ 路径 proxy: { '/api': { target: 'http://localhost:8180', changeOrigin: true, rewrite: (path: string) => path.replace(/^\/api/, '') }, // 代理共享模块请求到 shared 服务 '/shared': { target: 'http://localhost:7000', changeOrigin: true } } }, build: { outDir: 'dist', sourcemap: true, rollupOptions: { output: { manualChunks: { 'vue-vendor': ['vue', 'vue-router', 'pinia'], 'element-plus': ['element-plus'] } } } } }))