Files
AIGC/demo/frontend/vite.config.js
2025-11-13 17:01:39 +08:00

78 lines
2.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
export default defineConfig({
plugins: [vue()],
resolve: {
alias: {
'@': resolve(__dirname, 'src')
}
},
// 生产/开发环境配置
base: process.env.NODE_ENV === 'production' ? '/' : '/',
// 开发服务器配置
server: {
port: 8081,
host: '0.0.0.0', // 允许外部访问
allowedHosts: true, // 允许所有主机访问
proxy: {
'/api': {
// 开发时代理到本地后端(统一为 localhost:8080
target: process.env.VITE_APP_API_URL || 'http://localhost:8080',
changeOrigin: true,
secure: false,
// 后端服务器路径已经包含 /api所以不需要 rewrite
// 前端请求 /api/xxx 会转发到 http://localhost:8080/api/xxx
// 调试时将 cookie 域改写为 localhost
cookieDomainRewrite: 'localhost',
cookiePathRewrite: '/',
configure: (proxy, _options) => {
proxy.on('error', (err, _req, _res) => {
console.log('proxy error', err);
});
proxy.on('proxyReq', (proxyReq, req, _res) => {
console.log('Sending Request to the Target:', req.method, req.url);
});
proxy.on('proxyRes', (proxyRes, req, _res) => {
console.log('Received Response from the Target:', proxyRes.statusCode, req.url);
const setCookie = proxyRes.headers['set-cookie'];
if (setCookie) {
console.log('Proxy Set-Cookie:', setCookie);
}
});
}
}
}
},
// 生产环境构建配置
build: {
outDir: 'dist',
assetsDir: 'static',
// 代码分割优化
rollupOptions: {
output: {
manualChunks: {
'vue-vendor': ['vue', 'vue-router', 'pinia'],
'element-plus': ['element-plus', '@element-plus/icons-vue'],
'utils': ['axios']
}
}
},
// 生产环境移除 console
// 注意:如果使用 terser需要安装: npm install -D terser
// 暂时使用 esbuild默认更快
minify: 'esbuild',
// terserOptions: {
// compress: {
// drop_console: true,
// drop_debugger: true
// }
// },
// 块大小警告限制
chunkSizeWarningLimit: 1000
}
})