first commit

This commit is contained in:
douboer@gmail.com
2026-03-03 13:23:14 +08:00
commit 3b7c1d558a
161 changed files with 28120 additions and 0 deletions

95
terminal/README.md Normal file
View File

@@ -0,0 +1,95 @@
# 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 切换)。