import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { resolve } from 'path' import basicSsl from '@vitejs/plugin-basic-ssl' // https://vite.dev/config/ export default defineConfig({ plugins: [vue(), basicSsl()], resolve: { alias: { '@': resolve(__dirname, 'src') } }, optimizeDeps: { include: ['mp4box'], esbuildOptions: { // 设置全局变量以支持 CommonJS 模块 define: { global: 'globalThis' } } }, build: { // 生产环境构建配置 minify: 'terser', // 使用 terser 进行代码压缩 terserOptions: { compress: { // 移除 console.* drop_console: true, // 移除 debugger drop_debugger: true, // 移除未使用的代码 pure_funcs: ['console.log', 'console.info', 'console.debug', 'console.warn'] } }, // 确保CSS按正确顺序打包 cssCodeSplit: false, rollupOptions: { output: { // 确保关键的CSS文件优先级 manualChunks: { 'element-plus': ['element-plus'], 'vue3-puzzle-vcode': ['vue3-puzzle-vcode'] } } } }, server: { host: '0.0.0.0', // 允许通过IP地址访问 // https: true, proxy: { '/user': { target: 'http://127.0.0.1:8082', // 使用本地开发服务器 // target: 'http://101.35.131.61:8082', changeOrigin: true, rewrite: (path) => path.replace(/^\/user/, '/user'), // 如果必须使用生产服务器,可以添加以下配置防护 configure: (proxy, options) => { proxy.on('proxyRes', (proxyRes, req, res) => { // 移除可能导致浏览器弹出认证对话框的响应头 if (proxyRes.statusCode === 401) { delete proxyRes.headers['www-authenticate'] } }) } } } } })