@ band- app/ 服务器
Web服务器+Band的仪表板前端. 提供tRPC API,WebSocket层,并捆绑被Electron桌面应用程序和(可选的)独立的npm消费者所消耗的UI.
运行时间:节点.js 22.5+
此软件包运行在 节点.js v22.5 或更新. CI在节点24测试它(.nvmrc 在 repo 根上, 版本的桌面应用程序捆绑。 弹出 bin/band-server.mjs 实值 #!/usr/bin/env node。 。 。 .
iQQ 用户运行乐队 桌面应用程序 对 没有 需要自己安装节点——桌面外壳会自带捆绑的节点运行时间(通过Electron)并产入其下方的网络服务器. 22.5+节点要求仅适用于直接通过此软件包运行的人
band-server编号 :node dist/start-server.mjs,或针对源树进行本地开发.
# Run the server (standalone consumer scenario)
band-server
# or:
node dist/start-server.mjs
SQL 通过 node:sqlite
SQLite由节点的内置提供 node:sqlite 模块 —— 捆绑中没有本地模块船。 这样就能消除 NODE_MODULE_VERSION 影响软件包的ABI 不匹配 better-sqlite3: 无论哪个节点, 用户都会运行补给 node:sqlite 直接,所以二进制总是与运行时间相匹配.
node:sqlite 处于 稳定1.2——释放候选人 在当前节点中,自22.13.0起可用未加标记。 API在整个节点22.5 → 23.x → 24.x稳定. 启动 ExperimentalWarning 能够被沉默 NODE_OPTIONS='--no-warnings=ExperimentalWarning' (测试和e2e脚本在 package.json 已经这么做了).
我们只是简短地 bun:sqlite (PR #353)来躲避同样的ABI问题,但Bun's node:http shim不会开枪的 upgrade 活动 httpServer.on("upgrade", …),打破 tRPC 订阅、终端和LSP WebSockets(烤箱-sh/bun#18945, (中文(简体) ), 5951号, (中文(简体) ), 24107号) (中文(简体) ). node:sqlite 获得同样的ABI稳定性 赢得不改变JS运行时间.
安装
独立方案(运行) band-server 在桌面应用程序之外,Node v22.5+必须打开 PATH。桌面应用程序用户可以跳过此部分 。 .
# 1. Install Node.js 22.5+ (https://nodejs.org)
# 2. Install the package
npm i -g @band-app/server # or: pnpm add -g
# 3. Run
band-server # starts on PORT (default 3456)
环境:
| 瓦尔 | 默认 | 页:1 |
|---|---|---|
PORT | 3456 | TCP 端口绑定 |
HOME/.band | —— 说 | 状态目录( sqlite db, 设置, 日志) |
发展
pnpm install # at repo root
pnpm dev # hub with Vite serving apps/web in-process (HMR, one port)
pnpm build # UI (apps/web/dist/client), then the hub bundle (apps/hub/dist)
pnpm --filter @band-app/server test # backend integration tests (vitest under Node)
pnpm --filter @band-app/web test:e2e # Playwright, booting the hub bundle
维特套房 生产捆绑dist/start-server.mjs)),而Playwright e2e帮助器都在节点下运行.
套装布局( E)dist/(中文(简体) )
dist/
├── start-server.mjs # esbuild bundle, entry point
├── client/ # built dashboard frontend (vite)
├── server/ # SSR server bundle
├── migrations/ # drizzle SQL migrations
├── openapi.json # generated tRPC OpenAPI spec
└── node_modules/ # only externalized native deps + helpers
├── node-pty/ # native PTY (.node + spawn-helper, NAPI — ABI-stable)
└── @openai/codex/ # Codex SDK package.json (codex CLI is system-installed)
没有SQLite本地模块船在捆绑.