# GitHub 发布 ## 生成可安装包 使用 Node.js 22.19+ 或 24+ 及本机 Chrome/Chromium;可用 `CHROME_PATH` 指定浏览器。项目没有安装依赖。 ```sh npm run release ``` 命令依次构建、静态检查、执行完整回归、生成 npm 格式的 `.tgz` 安装包,再直接检查压缩包中的运行文件、资源摘要和排除项。输出位于 `dist/`,同时生成 `SHA256SUMS.txt` 和 `release-manifest.json`。命令只生成本地文件,不创建提交、标签或远程发布。 也可单独检查已有安装包: ```sh node tests/verify-package.mjs dist/dsh-plugin-eva-theme-0.51.2.tgz ``` ## 上传仓库与 Release 1. 检查工作区差异,保留代码、完整 `assets/`、文档、测试和构建工具。不要提交 `dist/`、临时截图、日志、系统缓存或个人配置。 2. 确认 `package.json`、客户端版本和 CHANGELOG 一致,并查看 GitHub CI 是否通过。 3. 将准备好的修改提交并上传至自己的 GitHub 仓库。 4. 创建对应版本的 Release,附上 `dist/` 中的 `.tgz` 与 `SHA256SUMS.txt`;发行说明引用 CHANGELOG 中的本版变化。 仓库 ZIP/克隆目录可直接交给 DSH 插件管理器;`.tgz` 为标准 npm 包格式,可解压后使用 `package/` 目录安装。包内保留所有运行时图片、语音、背景音乐、工作线程和素材说明;构建源 GIF、测试台、截图及参考稿只在开发仓库保留。不要只复制 `lib/client.js`,新版本需要完整 `assets/` 和宿主静态服务。 ## 验收范围 自动化检查包含两种主题的令牌与对比度、音频实际解码和完整播放、拖放与键盘操作、取消与资源回收、提示音去重、宿主路由、静态资源缓存/分段读取、多视口/缩放和减少动态效果。布局测试使用隔离浏览器与模拟宿主会话。 macOS 拖动验证须区分 CSS 计算值与真实原生窗口移动:在目标 Electron 宿主拖动主界面标题栏及启动空白处,并将头像跨网格拖入插入栓;控件点击与音频队列也应验收。隔离浏览器测试覆盖样式和 Web 交互,不能替代原生窗口位移验收。 发布前仍应在 DSH Desktop 核对两种主题、驾驶员选择、装载语音、聊天交接、设置、音乐控制与远程控制关闭;不要用真实会话发起收费任务来测试提示音。已知平台范围与安装方法见 [README](../README.md),素材与许可见 [NOTICE](../NOTICE.md)。