2025-04-03 15:55:30 +08:00
|
|
|
|
import { fileURLToPath, URL } from "node:url";
|
|
|
|
|
|
import AutoImport from "unplugin-auto-import/vite";
|
|
|
|
|
|
import Components from "unplugin-vue-components/vite";
|
|
|
|
|
|
import { VantResolver } from "@vant/auto-import-resolver";
|
|
|
|
|
|
import { defineConfig } from "vite";
|
|
|
|
|
|
import vue from "@vitejs/plugin-vue";
|
|
|
|
|
|
import vueJsx from "@vitejs/plugin-vue-jsx";
|
|
|
|
|
|
import vueDevTools from "vite-plugin-vue-devtools";
|
|
|
|
|
|
|
|
|
|
|
|
// https://vite.dev/config/
|
|
|
|
|
|
export default defineConfig({
|
|
|
|
|
|
server: {
|
|
|
|
|
|
host: "0.0.0.0", // 设置为 0.0.0.0 允许局域网访问
|
|
|
|
|
|
port: 5678, // 自定义端口号,可选
|
|
|
|
|
|
strictPort: true, // 如果端口被占用则抛出错误而不是使用下一个可用端口
|
|
|
|
|
|
proxy: {
|
2025-12-25 14:49:46 +08:00
|
|
|
|
// "/api/v1": {
|
2026-01-17 18:38:45 +08:00
|
|
|
|
// target: "https://www.tianyuancha.cn", // 本地接口地址
|
2025-12-25 14:49:46 +08:00
|
|
|
|
// changeOrigin: true,
|
|
|
|
|
|
// },
|
2026-01-17 18:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
// "/api/v1/chat": {
|
|
|
|
|
|
// target: "https://www.tianyuancha.cn", // 本地接口地址
|
|
|
|
|
|
// changeOrigin: true,
|
|
|
|
|
|
// // rewrite: (path) => path.replace(/^\/api\/v1\/chat/, '/chat')
|
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
|
|
"/api/v1": {
|
|
|
|
|
|
target: "http://127.0.0.1:8888", // 本地接口地址
|
|
|
|
|
|
changeOrigin: true,
|
|
|
|
|
|
},
|
2025-12-25 14:49:46 +08:00
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
build: {
|
|
|
|
|
|
// 生产环境优化
|
|
|
|
|
|
minify: "terser",
|
|
|
|
|
|
terserOptions: {
|
|
|
|
|
|
compress: {
|
|
|
|
|
|
drop_console: true, // 移除console
|
|
|
|
|
|
drop_debugger: true, // 移除debugger
|
2025-06-03 20:44:50 +08:00
|
|
|
|
},
|
2025-04-03 15:55:30 +08:00
|
|
|
|
},
|
2025-12-25 14:49:46 +08:00
|
|
|
|
rollupOptions: {
|
|
|
|
|
|
output: {
|
|
|
|
|
|
// 代码分割优化
|
|
|
|
|
|
manualChunks: {
|
|
|
|
|
|
vendor: ["vue", "vue-router", "pinia"],
|
|
|
|
|
|
vant: ["vant"],
|
|
|
|
|
|
echarts: ["echarts", "vue-echarts"],
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
// 启用gzip压缩
|
|
|
|
|
|
assetsInlineLimit: 4096,
|
|
|
|
|
|
chunkSizeWarningLimit: 1000,
|
2025-04-03 15:55:30 +08:00
|
|
|
|
},
|
|
|
|
|
|
plugins: [
|
|
|
|
|
|
vue(),
|
|
|
|
|
|
AutoImport({
|
|
|
|
|
|
imports: [
|
|
|
|
|
|
"vue", // 自动引入 Vue Composition API,如 ref、computed、onMounted 等
|
|
|
|
|
|
"vue-router", // 自动引入 vue-router 中的方法,如 useRoute、useRouter 等(可选)
|
|
|
|
|
|
"@vueuse/core", // 自动引入 VueUse 中的工具函数(可选)
|
|
|
|
|
|
],
|
|
|
|
|
|
dts: "src/auto-imports.d.ts", // 生成类型定义文件(可选)
|
|
|
|
|
|
dirs: ["src/composables", "src/stores", "src/components"],
|
|
|
|
|
|
resolvers: [VantResolver()],
|
|
|
|
|
|
}),
|
|
|
|
|
|
Components({
|
|
|
|
|
|
resolvers: [VantResolver()],
|
|
|
|
|
|
}),
|
|
|
|
|
|
vueJsx(),
|
2025-05-02 14:52:22 +08:00
|
|
|
|
vueDevTools(),
|
2025-04-03 15:55:30 +08:00
|
|
|
|
],
|
|
|
|
|
|
resolve: {
|
|
|
|
|
|
alias: {
|
|
|
|
|
|
"@": fileURLToPath(new URL("./src", import.meta.url)),
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
2025-12-25 14:49:46 +08:00
|
|
|
|
// SEO优化配置
|
|
|
|
|
|
define: {
|
|
|
|
|
|
__VUE_OPTIONS_API__: true,
|
|
|
|
|
|
__VUE_PROD_DEVTOOLS__: false,
|
|
|
|
|
|
},
|
2025-04-03 15:55:30 +08:00
|
|
|
|
});
|