mirror of
https://github.com/ThearchyHelios/AgentLab.git
synced 2026-11-15 04:11:58 +00:00
04450e8f51
- 关浏览器不干等:系统 Chrome 建过浏览器上下文之后,关浏览器要空等约 4.5 秒才退出。 check-all 给检查用的 Chrome 套一层转发,见到「关浏览器」就替它应答、再让它退出(几十毫秒), 其余消息原样转发,检查脚本一行不改;CHECK_FAST_CLOSE=0 关掉。最慢的两项因此从 317 秒、281 秒降到 184 秒、117 秒 - 拆开最慢的两项:run-states 拆成 3 份、canvas-fx 拆成 2 份,分到不同的道;每一段恰好跑一次,断言数不变, 以后新加的段自动落进「其余」那一份;汇总表按原检查名合成一行,没过的只重跑那一份 - 量时间的几份同一时刻最多跑一份(原来是整项互斥),这条链排在最前面;默认 4 道改成 8 道 - 新增 --stacks N(要 CHECK_DATA_SRC 指定数据目录):从当前工作区另起 N 套后端和前端, 各用一份数据拷贝,端口自动挑空闲的;后端不热重载、前端不监听文件,代码中途被改也不会打断检查; 跑完、出错或被中断都会把进程和临时目录清干净 - 前端开发服务器新增两个可选开关(AGENTLAB_VITE_NO_WATCH、AGENTLAB_VITE_CACHE_DIR),不设时行为不变 - 写稳一处断言竞态:数据页点亮「数据」的判断,路由状态在地址变化之后才提交,改成最多等 3 秒再判,判定条件不变 实测(17 项、4361 条断言,一条没删、没放松):原来 9 分 58 秒;默认跑法 3 分 26 秒; --stacks 2 --lanes 12 约 3 分 03 秒(另加约 10 秒起服务),连续 3 次全绿
33 lines
1.8 KiB
TypeScript
33 lines
1.8 KiB
TypeScript
import { defineConfig, searchForWorkspaceRoot } from 'vite'
|
|
import react from '@vitejs/plugin-react'
|
|
import tailwindcss from '@tailwindcss/vite'
|
|
|
|
// 后端端口跟着 dev.sh 走:8000 被别的项目占了它会自动挪,挪到哪就从
|
|
// 环境变量告诉这边,否则前端会把请求代理到别人的服务上去。
|
|
const API_PORT = process.env.AGENTLAB_PORT || '8000'
|
|
|
|
// 下面两个只给检查用的隔离环境(scripts/check-all.mjs --stacks)设,平时不设、行为不变:
|
|
// - AGENTLAB_VITE_NO_WATCH=1:不监听文件、不开热更新。边改代码边跑检查时,热更新会把页面
|
|
// 整个重载、或者把 store 模块换掉,检查就偶发失败
|
|
// - AGENTLAB_VITE_CACHE_DIR:依赖预构建的缓存放到这里(每套一份)。关了热更新,React 插件就不挂
|
|
// Fast Refresh,预构建的指纹跟着变:要是和平时的开发服务器共用 node_modules/.vite,它会把那边
|
|
// 的缓存整个重建一遍。所以关热更新时缓存一定另放,没给目录就放 node_modules/.vite-no-watch
|
|
const NO_WATCH = process.env.AGENTLAB_VITE_NO_WATCH === '1'
|
|
const CACHE_DIR = process.env.AGENTLAB_VITE_CACHE_DIR || (NO_WATCH ? 'node_modules/.vite-no-watch' : '')
|
|
|
|
export default defineConfig({
|
|
plugins: [react(), tailwindcss()],
|
|
...(CACHE_DIR ? { cacheDir: CACHE_DIR } : {}),
|
|
server: {
|
|
// 5173 太容易和别的项目撞车,挪开一点
|
|
port: 5273,
|
|
...(NO_WATCH ? { watch: null, hmr: false } : {}),
|
|
// 缓存放到项目外面(/tmp 下)时要放行它:默认只放行项目目录
|
|
...(CACHE_DIR ? { fs: { allow: [searchForWorkspaceRoot(process.cwd()), CACHE_DIR] } } : {}),
|
|
proxy: {
|
|
// 前端开发服务器代理到后端,省掉跨域配置
|
|
'/api': { target: `http://127.0.0.1:${API_PORT}`, changeOrigin: true, ws: true },
|
|
},
|
|
},
|
|
})
|