# terminal 这个仓库用于承接从 `remoteconn` 迁出的 xterm/terminal-core 迁移代码,采用 npm workspaces 管理。 ## 环境要求 - Node.js 20+(建议使用当前 LTS) - npm 10+ ## 快速启动(Web) 在仓库根目录执行: ```bash npm install npm run dev ``` 默认会启动 `apps/web`,监听地址为: - 本机访问:`http://localhost:5173` - 局域网访问:`http://<你的IP>:5173` ## 常用命令 根目录命令: ```bash npm run dev # 启动 Web 实验页(apps/web) npm run build # 先构建 terminal-core,再构建 web npm run test # 运行 terminal-core 测试 npm run typecheck # 运行 terminal-core + web 类型检查 ``` 按 workspace 执行命令: ```bash npm run test -w apps/web npm run test -w packages/terminal-core npm run lint -w packages/terminal-core npm run build:miniprogram -w packages/terminal-core ``` 说明: - 目前根目录未提供统一 `lint` 与 `deploy` 脚本。 - `.npmrc` 已将 npm 缓存指向仓库内 `.npm-cache`,减少 `~/.npm` 权限冲突问题。 ## Web 配置文件 可通过 `apps/web/public/terminal.config.json` 配置网关与服务器,无需在控制台手动写 `localStorage`。 - `gatewayUrl`:网关 WebSocket 地址。推荐同源路径(如 `/ws/terminal`),HTTPS 下会自动匹配 `wss`。 - `gatewayToken`:网关令牌。 - `selectedServerId`:默认选中的服务器 ID。 - `servers`:服务器列表(`host/port/username/authType/password/privateKey/...`)。 修改配置文件后刷新页面即可生效;若同时存在本地缓存,配置文件优先。 ## 目录结构(核心) ```text . ├── apps/ │ ├── web/ │ └── miniprogram/ ├── packages/ │ └── terminal-core/ ├── docs/ ├── README.md ├── package.json ├── package-lock.json ├── .npmrc └── xterm-standalone-lab-plan-2026-03-01.md ``` ## 目录说明 - `apps/web/`:Web 端实验应用(Vite + Vue + Pinia),承载 terminal 实验页与页面级状态。 - `apps/miniprogram/`:小程序侧适配代码与组件(输入桥接、测量适配、传输适配等)。 - `packages/terminal-core/`:跨端复用的终端核心库(状态机、输入、渲染内核、布局与清洗逻辑)。 - `docs/`:迁移与实验相关文档。 ## 已迁入内容 - `apps/web/src/terminal/`:Web 端新 terminal-core 实验页与组件。 - `apps/web/vitest.config.ts`。 - `packages/terminal-core/`:跨平台终端核心包。 - `apps/miniprogram/components/terminal-core-view/`。 - `apps/miniprogram/utils/wxInputBridge.js`。 - `apps/miniprogram/utils/wxMeasureAdapter.js`。 - `apps/miniprogram/utils/wxTransport.js`。 - `docs/xterm-standalone-lab-plan-2026-03-01.md`。 当前 Web 实验页已收敛为 `textarea` 渲染模式(不再提供 compat 切换)。