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

terminal

这个仓库用于承接从 remoteconn 迁出的 xterm/terminal-core 迁移代码,采用 npm workspaces 管理。

环境要求

  • Node.js 20+(建议使用当前 LTS
  • npm 10+

快速启动Web

在仓库根目录执行:

npm install
npm run dev

默认会启动 apps/web,监听地址为:

  • 本机访问:http://localhost:5173
  • 局域网访问:http://<你的IP>:5173

常用命令

根目录命令:

npm run dev        # 启动 Web 实验页apps/web
npm run build      # 先构建 terminal-core再构建 web
npm run test       # 运行 terminal-core 测试
npm run typecheck  # 运行 terminal-core + web 类型检查

按 workspace 执行命令:

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

说明:

  • 目前根目录未提供统一 lintdeploy 脚本。
  • .npmrc 已将 npm 缓存指向仓库内 .npm-cache,减少 ~/.npm 权限冲突问题。

Web 配置文件

可通过 apps/web/public/terminal.config.json 配置网关与服务器,无需在控制台手动写 localStorage

  • gatewayUrl:网关 WebSocket 地址。推荐同源路径(如 /ws/terminalHTTPS 下会自动匹配 wss
  • gatewayToken:网关令牌。
  • selectedServerId:默认选中的服务器 ID。
  • servers:服务器列表(host/port/username/authType/password/privateKey/...)。

修改配置文件后刷新页面即可生效;若同时存在本地缓存,配置文件优先。

目录结构(核心)

.
├── 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 切换)。