SillyTavern 桌面版 Electron 打包完全指南:10 分钟构建跨平台可执行程序
【免费下载链接】SillyTavernLLM Frontend for Power Users.项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern
SillyTavern 是基于 Node.js 的 LLM 聊天前端,用于驱动角色对话与 AI 工作流。完成 Electron 打包后,你会得到一份带原生窗口的 SillyTavern 桌面应用:服务器随应用启动,聊天界面独立于浏览器标签。启动方式从"终端输入命令"缩减为"双击图标"。

打包方案拆解
Electron(跨平台桌面壳框架)在这里充当外壳进程:src/electron/index.js先以 Node.js 方式拉起 SillyTavern 主服务,服务发出SERVER_STARTED事件后自动创建 BrowserWindow 并加载本地地址。窗口尺寸支持--width/--height参数,默认 800x600。所以"双击即开"的本质是壳进程替你把服务拉起来了,详见 electron 启动脚本。
前置条件:环境、源码与依赖
- 系统已安装 Node.js 18+ 与 npm。
- 源码可来自 git 或离线 zip 包。
# 克隆仓库(无 git 环境时直接下载 zip 并解压) git clone https://gitcode.com/GitHub_Trending/si/SillyTavern cd SillyTavern# 根目录安装主服务依赖;shell 内再进 src/electron 装 Electron 运行时 npm install cd src/electron && npm install打包全流程:启动命令对照与产物验证
仓库内置的 electron 封装目录 只定义了npm run start(即electron .),不含npm run dist,也没有打包器配置;可执行文件需借助 electron-builder(把 Node 应用打包为安装器的工具)另行产出。
Electron 桌面应用三平台启动命令对照
dev 形态在 Windows / macOS / Linux 上完全一致,差异只在 shell:
# 在 src/electron 目录运行,参数控制窗口尺寸(三平台通用) npm run start -- --width=1280 --height=800 # macOS/Linux 也可直接 ./start.sh;Windows 用 Start.bat预期输出(节选):
# 先出现 Electron 运行时日志,随后是 Express 监听信息 [<pid>] Starting server... Server is running at http://localhost:8000出现Server is running at即判定成功,窗口随后自动打开src/electron/dist之外、由 electron-builder 产出的安装包,流程如下:
# 在 src/electron 目录安装打包器并指定主入口 npm i -D electron-builder npx electron-builder --win --mac --linux # 按需保留平台参数产物路径:src/electron/dist/。
产物格式速查
| 平台 | 产物格式 | 典型文件 | 备注 |
|---|---|---|---|
| Windows | NSIS 安装包(exe 安装器) | SillyTavern Setup 1.0.0.exe | 支持开始菜单快捷方式 |
| macOS | DMG 磁盘镜像 | SillyTavern-1.0.0.dmg | 未签名时首次打开需右键 |
| Linux | AppImage 单文件 | sillytavern_1.0.0_amd64.AppImage | 免安装,需可执行权限 |
上表为 electron-builder 的典型产出,版本号随src/electron/package.json变化。
调优与进阶
- 图标替换:打包配置中指向
public/st.ico与public/st-launcher.ico。 - 窗口尺寸:启动参数
--width=1200 --height=800,默认 800x600。 - 自动更新:electron-builder 配合发布通道可实现增量更新。
- 服务事件:窗口创建时机由
SERVER_STARTED事件驱动,可在src/server-events.js查证。
高频踩坑
- 现象:窗口打开后白屏 →原因:主项目依赖缺失,服务未真正监听 →解决:回到仓库根目录执行
npm install后重启。 - 现象:
npm run start报Cannot find module 'electron'→原因:只在根目录装了依赖 →解决:进入src/electron单独执行npm install。 - 现象:Electron 二进制下载超时 →原因:npm 源访问受限 →解决:设置镜像环境变量后重装,如
ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/。 - 现象:端口 8000 被占用,窗口打不开 →原因:已有实例在运行 →解决:结束旧进程或改
config.yaml的默认端口。 - 现象:Linux 下 AppImage 无法执行 →原因:缺少可执行权限 →解决:
chmod +x该 AppImage 文件。
延伸方向
- 系统托盘驻留
- 全局热键唤起
- 多实例会话
- 无头模式运行
- 启动参数持久化
打包前确认主项目已执行 npm install
【免费下载链接】SillyTavernLLM Frontend for Power Users.项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考