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' import fs from 'fs' 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/ 路径 // HTTPS 配置(使用 mkcert 生成的本地开发证书) https: { key: fs.readFileSync('C:/Users/FK05/443/localhost+3-key.pem'), cert: fs.readFileSync('C:/Users/FK05/443/localhost+3.pem') }, proxy: { '/api': { target: 'http://localhost:8180', changeOrigin: true, rewrite: (path: string) => path.replace(/^\/api/, '') } } }, build: { outDir: 'dist', sourcemap: true, rollupOptions: { output: { manualChunks: { 'vue-vendor': ['vue', 'vue-router', 'pinia'], 'element-plus': ['element-plus'] } } } } }))