Files
Reisaye/EyeVue/vite.config.ts
2025-08-08 16:07:49 +08:00

148 lines
4.5 KiB
TypeScript
Raw Permalink 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 path from "path";
import viteCompression from "vite-plugin-compression";
import { ViteImageOptimizer } from "vite-plugin-image-optimizer";
import { fontConfig } from "./src/config/font";
import cesium from 'vite-plugin-cesium'
export default defineConfig({
base: "/",
build: {
outDir: "dist",
assetsDir: "assets",
minify: "terser",
sourcemap: false,
chunkSizeWarningLimit: 1500,
terserOptions: {
compress: {
drop_console: true,
drop_debugger: true,
pure_funcs: ["console.log"],
},
format: {
comments: /@license/i,
},
},
rollupOptions: {
output: {
manualChunks: {
vendor: ["vue", "vue-router"],
},
chunkFileNames: "assets/js/[name]-[hash].js",
entryFileNames: "assets/js/[name]-[hash].js",
assetFileNames: "assets/[ext]/[name]-[hash].[ext]",
},
},
cssCodeSplit: true,
cssMinify: true,
},
plugins: [
cesium(),
vue(),
viteCompression({
verbose: true,
disable: false,
threshold: 10240,
algorithm: "gzip",
ext: ".gz",
}),
ViteImageOptimizer({
test: /\.(jpe?g|png|gif|svg)$/i,
exclude: undefined,
include: undefined,
includePublic: true,
logStats: true,
ansiColors: true,
svg: {
multipass: true,
plugins: [
{
name: "preset-default",
params: {
overrides: {
removeViewBox: false,
removeEmptyAttrs: false,
},
},
},
],
},
png: {
quality: 80,
},
jpeg: {
quality: 80,
},
jpg: {
quality: 80,
},
tiff: {
quality: 80,
},
gif: undefined,
webp: {
quality: 80,
},
avif: {
quality: 80,
},
}),
],
resolve: {
alias: {
"@": path.resolve(__dirname, "src"),
},
},
server: {
host: "0.0.0.0", // 监听所有网络接口
port: 5173, // 确保端口设置正确
allowedHosts: ["w.godserver.cn",'godserver.cn','www.godserver.cn','rbq.college'], // 允许的主机列表
proxy: {
"/api": {
target: "http://127.0.0.1:8080", // 注意这里去掉了后面的/apiVite会自动拼接
changeOrigin: true, // 关键修改请求头中的Origin为目标服务器地址
rewrite: (path) => path.replace(/^\/api/, '/api'), // 保留/api前缀
headers: {
// 添加可能需要的请求头解决403问题
"Origin": "http://127.0.0.1:8080",
"Referer": "http://127.0.0.1:8080",
"Accept": "application/json",
"Cache-Control": "no-cache",
"Pragma": "no-cache"
},
},
// 代理HLS流请求
"/hls": {
target: "http://127.0.0.1:8080",
changeOrigin: true,
rewrite: (path) => path, // 不修改路径
headers: {
"Origin": "http://127.0.0.1:8080",
"Referer": "http://127.0.0.1:8080",
"Cache-Control": "no-cache"
}
},
// 代理历史视频请求
"/saved": {
target: "http://127.0.0.1:8080",
changeOrigin: true,
rewrite: (path) => path,
headers: {
"Origin": "http://127.0.0.1:8080",
"Referer": "http://127.0.0.1:8080",
"Cache-Control": "no-cache"
}
}
},
},
define: {
__VUE_OPTIONS_API__: true,
__VUE_PROD_DEVTOOLS__: false,
"process.env.VITE_FONT_URL": JSON.stringify(fontConfig.url),
"process.env.VITE_FONT_ENABLED": JSON.stringify(fontConfig.enabled),
"process.env.VITE_FONT_PRELOAD": JSON.stringify(fontConfig.preload),
},
});