From 88b6358472be7e90de8a44afa016e621d2872499 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E9=A2=9C?= Date: Tue, 20 Jan 2026 15:04:18 +0800 Subject: [PATCH] =?UTF-8?q?build(frontend):=20vite=20=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用 loadEnv 读取 VITE_DEV_PROXY_TARGET/VITE_DEV_PORT - 注入 public settings 与 dev proxy 使用同源后端地址 --- frontend/vite.config.ts | 53 ++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 267158ea..d88c6eed 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -1,4 +1,4 @@ -import { defineConfig, Plugin } from 'vite' +import { defineConfig, loadEnv, Plugin } from 'vite' import vue from '@vitejs/plugin-vue' import checker from 'vite-plugin-checker' import { resolve } from 'path' @@ -7,9 +7,7 @@ import { resolve } from 'path' * Vite 插件:开发模式下注入公开配置到 index.html * 与生产模式的后端注入行为保持一致,消除闪烁 */ -function injectPublicSettings(): Plugin { - const backendUrl = process.env.VITE_DEV_PROXY_TARGET || 'http://localhost:8080' - +function injectPublicSettings(backendUrl: string): Plugin { return { name: 'inject-public-settings', transformIndexHtml: { @@ -35,15 +33,21 @@ function injectPublicSettings(): Plugin { } } -export default defineConfig({ - plugins: [ - vue(), - checker({ - typescript: true, - vueTsc: true - }), - injectPublicSettings() - ], +export default defineConfig(({ mode }) => { + // 加载环境变量 + const env = loadEnv(mode, process.cwd(), '') + const backendUrl = env.VITE_DEV_PROXY_TARGET || 'http://localhost:8080' + const devPort = Number(env.VITE_DEV_PORT || 3000) + + return { + plugins: [ + vue(), + checker({ + typescript: true, + vueTsc: true + }), + injectPublicSettings(backendUrl) + ], resolve: { alias: { '@': resolve(__dirname, 'src'), @@ -102,17 +106,18 @@ export default defineConfig({ } } }, - server: { - host: '0.0.0.0', - port: Number(process.env.VITE_DEV_PORT || 3000), - proxy: { - '/api': { - target: process.env.VITE_DEV_PROXY_TARGET || 'http://localhost:8080', - changeOrigin: true - }, - '/setup': { - target: process.env.VITE_DEV_PROXY_TARGET || 'http://localhost:8080', - changeOrigin: true + server: { + host: '0.0.0.0', + port: devPort, + proxy: { + '/api': { + target: backendUrl, + changeOrigin: true + }, + '/setup': { + target: backendUrl, + changeOrigin: true + } } } }