diff --git a/AGENTS.md b/AGENTS.md index 82058274..bf960bb3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -20,7 +20,7 @@ - Qdrant:REST `127.0.0.1:6333`,默认 collection `aihr_knowledge`;可用 `AIHR_QDRANT_URL`、`AIHR_QDRANT_COLLECTION`、`AIHR_QDRANT_API_KEY` 覆盖。 - 资料导入根目录:默认 `./.data/import`,由 `scripts/dev-backend.sh` 传入 `aihr.import.root`;也可用 `AIHR_IMPORT_ROOT` 覆盖。 - 本地私密配置:根目录 `.env.local` 已被 `.gitignore` 忽略,`scripts/dev-backend.sh` 会自动加载;阿里云短信密钥只放这里或外部环境变量,不写入 `application-*.yml`。 -- 后端:默认通过 portless 启动,入口 `https://wygj-api.localhost/`;命令为 `portless run --name wygj-api ./scripts/dev-backend.sh` 或根目录 `./scripts/dev.sh`,显式 `PORTLESS=0` 时才回退端口 `8080`。 +- 后端:默认通过 portless 启动,入口 `https://wygj-api.localhost/`;命令为 `portless run --name wygj-api ./scripts/dev-backend.sh` 或根目录 `./scripts/dev.sh`,显式 `PORTLESS=0` 时才回退端口 `8080`。管理端 Vite 代理目标由 `frontend/.env.development` 的 `VITE_APP_PROXY_TARGET` 指向该入口。 - 管理端前端:`./scripts/dev-frontend.sh`,默认走 portless,入口 `https://wygj-admin.localhost/`;显式 `PORTLESS=0` 时回退端口 `5173`。 - 当前用户侧前端:`portless` 启动 `mobile-uni`,入口 `https://wygj-mobile-uni.localhost/h5/`。 - 旧移动端兜底:`./scripts/dev-mobile.sh`,端口 `5174`,只用于回看 MVP 演示壳。 diff --git a/docs/DEV_SETUP.md b/docs/DEV_SETUP.md index a3749835..4fc4879d 100644 --- a/docs/DEV_SETUP.md +++ b/docs/DEV_SETUP.md @@ -32,7 +32,7 @@ portless ``` -portless 会按根目录 `portless.json` 执行 `frontend` 和 `mobile-uni` 的 `npm run dev`。后端由 `./scripts/dev.sh` 默认通过 `portless run --name wygj-api ./scripts/dev-backend.sh` 启动;如需单独启动后端,可执行: +portless 会按根目录 `portless.json` 执行 `frontend` 和 `mobile-uni` 的 `npm run dev`。后端由 `./scripts/dev.sh` 默认通过 `portless run --name wygj-api ./scripts/dev-backend.sh` 启动;管理端 Vite 代理读取 `frontend/.env.development` 的 `VITE_APP_PROXY_TARGET=https://wygj-api.localhost`,不依赖固定 `8080`。如需单独启动后端,可执行: ```bash portless run --name wygj-api ./scripts/dev-backend.sh diff --git a/frontend/.env.development b/frontend/.env.development index 4112d89c..5d61d816 100644 --- a/frontend/.env.development +++ b/frontend/.env.development @@ -7,6 +7,7 @@ VITE_APP_ENV = 'development' # 开发环境 VITE_APP_BASE_API = '/dev-api' +VITE_APP_PROXY_TARGET = 'https://wygj-api.localhost' # 应用访问路径 例如使用前缀 /admin/ VITE_APP_CONTEXT_PATH = '/' diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 070846c2..4529827d 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -5,6 +5,7 @@ import path from 'path'; export default defineConfig(({ mode, command }) => { const env = loadEnv(mode, process.cwd()); + const proxyTarget = env.VITE_APP_PROXY_TARGET || 'https://wygj-api.localhost'; return { // 部署生产环境和开发环境下的URL。 // 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上 @@ -24,8 +25,9 @@ export default defineConfig(({ mode, command }) => { open: true, proxy: { [env.VITE_APP_BASE_API]: { - target: 'http://localhost:8080', + target: proxyTarget, changeOrigin: true, + secure: false, ws: true, rewrite: (path) => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '') } diff --git a/scripts/dev.sh b/scripts/dev.sh index a7cf427b..908dacea 100755 --- a/scripts/dev.sh +++ b/scripts/dev.sh @@ -84,6 +84,11 @@ stop_portless_route() { pids="$(portless list 2>/dev/null | sed -nE "s#.*https://${name}[.]localhost.*[(]pid ([0-9]+)[)].*#\\1#p" || true)" if [[ -z "$pids" ]]; then + if portless list 2>/dev/null | grep -q "https://${name}[.]localhost"; then + echo "Removing portless alias $name" + portless alias --remove "$name" >/dev/null 2>&1 || true + return + fi echo "Portless route $name is not running." return fi @@ -143,6 +148,7 @@ admin_url() { stop_dev() { stop_launchctl_job local.wygj.backend.dev + stop_launchctl_job local.wygj.admin.dev stop_portless_route wygj-api stop_port 8080 stop_portless_route wygj-admin