From cff4fe8da9fc04ac7fc12b8e56e2bbcfec37b6c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=AD=90=E9=BB=98?= <925456043@qq.com> Date: Wed, 18 Mar 2026 21:56:36 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=E9=80=82=E9=85=8D=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AF=20flow=20=E5=9F=BA=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整开发与分析环境的 base 和接口前缀为 /flow - 更新 Vite 代理配置,兼容 /flow/api 与 /flow/userCenter - 修复基路径下的 Logo 与启动加载图资源地址 --- easyflow-ui-admin/app/.env.analyze | 4 ++-- easyflow-ui-admin/app/.env.development | 4 ++-- easyflow-ui-admin/app/vite.config.mts | 12 ++++++++---- .../src/plugins/inject-app-loading/index.ts | 7 ++++++- .../packages/@core/preferences/src/config.ts | 10 ++++++---- 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/easyflow-ui-admin/app/.env.analyze b/easyflow-ui-admin/app/.env.analyze index ffafa8d..84c9df0 100644 --- a/easyflow-ui-admin/app/.env.analyze +++ b/easyflow-ui-admin/app/.env.analyze @@ -1,7 +1,7 @@ # public path -VITE_BASE=/ +VITE_BASE=/flow/ # Basic interface address SPA -VITE_GLOB_API_URL=/api +VITE_GLOB_API_URL=/flow VITE_VISUALIZER=true diff --git a/easyflow-ui-admin/app/.env.development b/easyflow-ui-admin/app/.env.development index 54e5744..8f2d43d 100644 --- a/easyflow-ui-admin/app/.env.development +++ b/easyflow-ui-admin/app/.env.development @@ -1,10 +1,10 @@ # 端口号 VITE_PORT=5090 -VITE_BASE=/ +VITE_BASE=/flow/ # 接口地址 -VITE_GLOB_API_URL=http://127.0.0.1:8111 +VITE_GLOB_API_URL=/flow # 是否打开 devtools,true 为打开,false 为关闭 VITE_DEVTOOLS=false diff --git a/easyflow-ui-admin/app/vite.config.mts b/easyflow-ui-admin/app/vite.config.mts index 3510ba8..f769885 100644 --- a/easyflow-ui-admin/app/vite.config.mts +++ b/easyflow-ui-admin/app/vite.config.mts @@ -20,13 +20,17 @@ export default defineConfig(async () => { ], server: { proxy: { - '/api': { + '/flow/api': { changeOrigin: true, - rewrite: (path) => path.replace(/^\/api/, ''), - // mock代理目标地址 - target: 'http://localhost:5320/api', + rewrite: (path) => path.replace(/^\/flow/, ''), + target: 'http://127.0.0.1:8111', ws: true, }, + '/flow/userCenter': { + changeOrigin: true, + rewrite: (path) => path.replace(/^\/flow/, ''), + target: 'http://127.0.0.1:8111', + }, }, }, }, diff --git a/easyflow-ui-admin/internal/vite-config/src/plugins/inject-app-loading/index.ts b/easyflow-ui-admin/internal/vite-config/src/plugins/inject-app-loading/index.ts index 6aa8862..1923a56 100644 --- a/easyflow-ui-admin/internal/vite-config/src/plugins/inject-app-loading/index.ts +++ b/easyflow-ui-admin/internal/vite-config/src/plugins/inject-app-loading/index.ts @@ -20,6 +20,7 @@ async function viteInjectAppLoadingPlugin( const { version } = await readPackageJSON(process.cwd()); const envRaw = isBuild ? 'prod' : 'dev'; const cacheName = `'${env.VITE_APP_NAMESPACE}-${version}-${envRaw}-preferences-theme'`; + const appBase = JSON.stringify(ensureTrailingSlash(env.VITE_BASE || '/')); // 获取缓存的主题 // 保证黑暗主题下,刷新页面时,loading也是黑暗主题 @@ -29,7 +30,7 @@ async function viteInjectAppLoadingPlugin( document.documentElement.classList.toggle('dark', /dark/.test(theme)); setTimeout(() => { if (/dark/.test(theme)) { - document.querySelector('#__app-loading__ img').src = '/logoDark.svg'; + document.querySelector('#__app-loading__ img').src = ${appBase} + 'logoDark.svg'; } }) @@ -68,4 +69,8 @@ async function getLoadingRawByHtmlTemplate(loadingTemplate: string) { return await fsp.readFile(appLoadingPath, 'utf8'); } +function ensureTrailingSlash(path: string) { + return path.endsWith('/') ? path : `${path}/`; +} + export { viteInjectAppLoadingPlugin }; diff --git a/easyflow-ui-admin/packages/@core/preferences/src/config.ts b/easyflow-ui-admin/packages/@core/preferences/src/config.ts index a60ef24..d1c0d68 100644 --- a/easyflow-ui-admin/packages/@core/preferences/src/config.ts +++ b/easyflow-ui-admin/packages/@core/preferences/src/config.ts @@ -1,5 +1,7 @@ import type { Preferences } from './types'; +const assetBase = import.meta.env.BASE_URL || '/'; + const defaultPreferences: Preferences = { app: { accessMode: 'frontend', @@ -65,10 +67,10 @@ const defaultPreferences: Preferences = { logo: { enable: true, fit: 'contain', - source: '/logo.svg', - sourceDark: '/logoDark.svg', - sourceMini: '/logoMini.svg', - sourceMiniDark: '/logoMiniDark.svg', + source: `${assetBase}logo.svg`, + sourceDark: `${assetBase}logoDark.svg`, + sourceMini: `${assetBase}logoMini.svg`, + sourceMiniDark: `${assetBase}logoMiniDark.svg`, }, navigation: { accordion: true,