如何自行打包启动器
本文档将指导你如何在本地环境中自行打包 SillyTavernLauncher。v2.0 起,启动器基于 TypeScript + GPUIX 构建,使用 Bun 打包为单文件 exe。1.x(Python/Flet + Nuitka)的打包方式已废弃,如需打包旧版请检出对应历史 tag(如 v1.3.10)参考其中的构建脚本。
准备工作
- Windows 操作系统(Windows 10 或更高版本)
- Bun 已安装(运行时与打包工具)
- Git 已安装
- 网络连接正常(安装依赖)
构建步骤
1. 获取源代码
bash
git clone https://github.com/LingyeSoul/SillyTavernLauncher.git
cd SillyTavernLauncher/src2. 安装依赖
bash
bun install3. 一键打包
bash
bun run build:onefile也可以在仓库根目录双击 build.bat(参数原样透传)。
打包脚本会依次执行完整流水线:
- 门禁:TypeScript 类型检查(
tsc --noEmit)+ Vitest 单元测试,失败即中止 - 图标:由
logo.png生成 16~256 七档尺寸的 ICO - 编译:
bun build --compile,内嵌图标、隐藏控制台、写入 PE 版本与版权元数据 - 产物验证:校验体积、图标逐档嵌入、GUI 子系统标记
- 冒烟测试:临时目录冷启动产物,验证主窗口正常出现(无图形环境时加
--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故障排除
- 打包失败于门禁阶段:类型错误或单元测试未过,按输出修复后重试
- 冒烟阶段失败:确认本机有图形环境,或加
--skip-smoke - 图标异常:确认
src/assets/logo.png存在
