Skip to content

如何自行打包启动器 ​

本文档将指导你如何在本地环境中自行打包 SillyTavernLauncher。v2.0 起,启动器基于 TypeScript + GPUIX 构建,使用 Bun 打包为单文件 exe。1.x(Python/Flet + Nuitka)的打包方式已废弃,如需打包旧版请检出对应历史 tag(如 v1.3.10)参考其中的构建脚本。

准备工作 ​

  1. Windows 操作系统(Windows 10 或更高版本)
  2. Bun 已安装(运行时与打包工具)
  3. Git 已安装
  4. 网络连接正常(安装依赖)

构建步骤 ​

1. 获取源代码 ​

bash
git clone https://github.com/LingyeSoul/SillyTavernLauncher.git
cd SillyTavernLauncher/src

2. 安装依赖 ​

bash
bun install

3. 一键打包 ​

bash
bun run build:onefile

也可以在仓库根目录双击 build.bat(参数原样透传)。

打包脚本会依次执行完整流水线:

  1. 门禁:TypeScript 类型检查(tsc --noEmit)+ Vitest 单元测试,失败即中止
  2. 图标:由 logo.png 生成 16~256 七档尺寸的 ICO
  3. 编译:bun build --compile,内嵌图标、隐藏控制台、写入 PE 版本与版权元数据
  4. 产物验证:校验体积、图标逐档嵌入、GUI 子系统标记
  5. 冒烟测试:临时目录冷启动产物,验证主窗口正常出现(无图形环境时加 --skip-smoke 跳过)

4. 检查打包结果 ​

产物位于仓库根目录:

dist/
└── SillyTavernLauncher-<version>-win-x64.exe   # 单文件 exe,直接运行

常用参数 ​

  • --skip-tests:跳过门禁(类型检查 + 单元测试),不推荐
  • --skip-smoke:无图形环境(如 CI 容器)时跳过冒烟启动

开发自测 ​

打包前可先在本地跑测试确认质量:

bash
cd src

# 类型检查
bun run typecheck

# 单元测试
bunx vitest run --project unit

# E2E 测试(起真实 GPU 窗口,串行执行,需本机图形环境)
bunx vitest run --project e2e

故障排除 ​

  1. 打包失败于门禁阶段:类型错误或单元测试未过,按输出修复后重试
  2. 冒烟阶段失败:确认本机有图形环境,或加 --skip-smoke
  3. 图标异常:确认 src/assets/logo.png 存在