From e2060de810b00b4f958609dc324772e89b2d843b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=82=96=E6=B3=BD=E6=B6=9B?= Date: Sat, 28 Feb 2026 17:13:51 +0800 Subject: [PATCH] fix(web): use env flag to hide graph menu at build time --- docker-compose.prod.yml | 5 +++++ docker-compose.yml | 1 + docker/web.Dockerfile | 8 ++++++++ web/src/layouts/AppLayout.vue | 8 +++++++- 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 4023ae8f..ed0a4bbc 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -104,6 +104,10 @@ services: context: . dockerfile: docker/web.Dockerfile target: production + args: + VITE_API_URL: ${VITE_API_URL:-http://api:5050} + VITE_USE_RUNS_API: ${VITE_USE_RUNS_API:-false} + VITE_ENABLE_KNOWLEDGE_GRAPH: ${YUXI_ENABLE_KNOWLEDGE_GRAPH:-true} image: yuxi-web:0.5.prod container_name: web-prod ports: @@ -116,6 +120,7 @@ services: - NODE_ENV=production - VITE_API_URL=http://api:5050 - VITE_USE_RUNS_API=${VITE_USE_RUNS_API:-false} + - VITE_ENABLE_KNOWLEDGE_GRAPH=${YUXI_ENABLE_KNOWLEDGE_GRAPH:-true} command: nginx -g "daemon off;" restart: unless-stopped diff --git a/docker-compose.yml b/docker-compose.yml index 2f471cf3..f7d399b2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -141,6 +141,7 @@ services: - NODE_ENV=development - VITE_API_URL=http://api:5050 - VITE_USE_RUNS_API=${VITE_USE_RUNS_API:-false} + - VITE_ENABLE_KNOWLEDGE_GRAPH=${YUXI_ENABLE_KNOWLEDGE_GRAPH:-true} command: pnpm run server restart: unless-stopped diff --git a/docker/web.Dockerfile b/docker/web.Dockerfile index 579c5403..9cc0b423 100644 --- a/docker/web.Dockerfile +++ b/docker/web.Dockerfile @@ -28,6 +28,14 @@ WORKDIR /app # 安装 pnpm RUN npm install -g pnpm@latest +# 构建阶段注入前端环境变量(Vite 在 build 时读取) +ARG VITE_API_URL=http://api:5050 +ARG VITE_USE_RUNS_API=false +ARG VITE_ENABLE_KNOWLEDGE_GRAPH=true +ENV VITE_API_URL=${VITE_API_URL} +ENV VITE_USE_RUNS_API=${VITE_USE_RUNS_API} +ENV VITE_ENABLE_KNOWLEDGE_GRAPH=${VITE_ENABLE_KNOWLEDGE_GRAPH} + # 复制依赖文件 COPY ./web/package*.json ./ COPY ./web/pnpm-lock.yaml* ./ diff --git a/web/src/layouts/AppLayout.vue b/web/src/layouts/AppLayout.vue index cef52630..3b9d73ee 100644 --- a/web/src/layouts/AppLayout.vue +++ b/web/src/layouts/AppLayout.vue @@ -37,6 +37,11 @@ const showDebugModal = ref(false) // Add state for settings modal const showSettingsModal = ref(false) +const graphMenuVisible = computed(() => { + const value = String(import.meta.env.VITE_ENABLE_KNOWLEDGE_GRAPH ?? 'true').toLowerCase() + return value === 'true' +}) + // Provide settings modal methods to child components const openSettingsModal = () => { showSettingsModal.value = true @@ -100,7 +105,8 @@ const mainList = computed(() => { name: '图谱', path: '/graph', icon: Waypoints, - activeIcon: Waypoints + activeIcon: Waypoints, + hidden: !graphMenuVisible.value }, { name: '知识库',