Files
terminal-lab/terminal/README.md
douboer@gmail.com 3b7c1d558a first commit
2026-03-03 13:23:14 +08:00

96 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 切换)。