69 lines
1.9 KiB
JavaScript
69 lines
1.9 KiB
JavaScript
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']
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}) |