发布日期:2026-06-20
版本概述
v0.5.4 是一个重要的架构优化版本,修复了多个长期存在的问题,并引入了开发工具链支持。本次更新为 v0.6.x 的大版本迭代奠定了坚实基础。
主要更新
架构优化
1. Windows Squirrel 安装器支持
- 安装
electron-squirrel-startup 依赖
- 在
main.ts 顶部添加 Squirrel 事件处理
- 确保 Windows 安装/更新/卸载时快捷方式和注册表正确处理
- 支持安装后自动启动、卸载时清理
2. 启动器统一
- 删除
electron/services/starlight.launcher.ts(662 行代码)
- 统一使用
game.launcher.service.ts
- 消除两套启动器并存带来的维护负担
- 减少代码冗余,提升可维护性
3. watcher.service.ts 完善
- 实现
findCrashReport 方法
- 添加
gameDir 参数支持
- 为崩溃日志分析提供基础支持
- 支持多游戏目录崩溃报告查找
4. P2P 自定义信令服务器配置
- 支持自定义信令服务器配置(
p2p_signaling_server)
- 优先使用用户配置的服务器
- 提高国内用户 P2P 连接稳定性
- 支持私有化部署场景
5. IPC 通道文档化
- 创建
IPC_DOCUMENTATION.md
- 记录 19 个模块、130+ handle 通道、16 条推送事件
- 包含用途描述、参数列表、返回值类型、调用方页面
- 便于后续开发和维护
性能优化
1. 并行下载
- 库文件/资源文件下载改为 5 并发
- 下载速度提升 3-5 倍
- 支持断点续传
- 自动重试失败任务
2. JVM GC 优化
- 根据系统内存大小动态选择 G1 参数
- 小内存(<4GB):保守配置,避免 OOM
- 中等内存(4-8GB):平衡配置
- 大内存(>8GB):激进配置,最大化性能
- 减少 GC 停顿,提升游戏体验
3. 缺失文件检测与提示
- 启动时自动检测缺失文件
- 弹窗提示用户缺失文件列表
- 用户确认后自动下载缺失文件
- 下载完成后自动继续启动流程
Bug 修复
1. archiver ESM 兼容性
- 问题:
archiver 模块在打包后的 Electron 主进程中无法加载
- 错误:
Error [ERR_REQUIRE_ESM]: require() of ES Module archiver/index.js not supported
- 修复:改为动态导入
const archiver = (await import('archiver')).default
- 影响文件:
electron/services/game.launcher.service.ts
2. i18n 导入方式
- 问题:Vite 打包时
zhCN is not defined 错误
- 原因:间接导入导致变量未定义
- 修复:在
i18n.ts 中直接导入翻译文件
- 影响文件:
src/locale/i18n.ts
3. CSP 策略修复
- 问题:Splash Screen 启动画面卡住无法隐藏
- 原因:Content Security Policy 阻止内联脚本执行
- 修复:
- 添加
'unsafe-inline' 允许内联脚本执行
- 添加超时强制隐藏机制(5秒)
- 影响文件:
index.html
4. CurseForge API Key 配置项移除
- 问题:设置页面中的 CurseForge API Key 用户配置项不必要
- 原因:API Key 应由开发者在开发时通过环境变量配置
- 修复:移除设置页面中的相关 UI 配置项
- 影响文件:
src/pages/SettingsPage.vue
开发工具
1. Vitest 测试框架
- 新增
vitest.config.ts 配置文件
- 新增
tests/setup.ts 测试环境 mock
- 新增
tests/i18n.test.ts i18n 翻译完整性测试
- 新增 npm 脚本:
npm run test - 运行测试
npm run test:watch - 监听模式
npm run test:coverage - 覆盖率报告
2. GitHub Actions CI/CD
- 创建
.github/workflows/ci.yml
- 支持:
- Lint 检查(ESLint)
- 构建(Vite + electron-builder)
- 单元测试(Vitest)
- 打包(Windows NSIS 安装程序)
- 发布(GitHub Release)
- 自动缓存 Electron 和 electron-builder 依赖
3. i18n 翻译资源
- 完善中英文翻译资源
- 覆盖 5 个模块:common、settings、game、modpack、p2p
- 每个语言 745+ 键值对
- 支持动态语言切换
构建产物
| 平台 |
文件名 |
大小 |
说明 |
| Windows |
MCLA Setup 0.5.4.exe |
~98.7 MB |
NSIS 安装程序 |
| Windows |
MCLA Setup 0.5.4.exe.blockmap |
~100 KB |
增量更新块映射文件 |
| Windows |
win-unpacked/ |
- |
免安装解压版 |
技术栈
- 框架:Electron 33.4.11 + Vite + Vue 3
- UI:像素风设计系统(Press Start 2P 字体)
- 数据库:SQLite (better-sqlite3)
- 构建:electron-builder 25.x
- 测试:Vitest 2.0 + @vue/test-utils + jsdom
- CI/CD:GitHub Actions
变更统计
| 指标 |
数值 |
| 修改文件数 |
22 个 |
| 新增代码 |
+2,383 行 |
| 删除代码 |
-799 行 |
| 净增代码 |
+1,584 行 |
| 新增文件 |
5 个(测试配置、i18n、CI/CD) |
| 删除文件 |
1 个(starlight.launcher.ts) |
文件变更详情
新增文件
| 文件 |
说明 |
vitest.config.ts |
Vitest 测试框架配置 |
tests/setup.ts |
测试环境 mock 设置 |
tests/i18n.test.ts |
i18n 翻译完整性测试 |
src/locale/zh-CN.ts |
中文翻译资源 |
src/locale/en-US.ts |
英文翻译资源 |
src/locale/i18n.ts |
vue-i18n 配置 |
src/locale/index.ts |
翻译资源导出 |
修改文件
| 文件 |
变更说明 |
electron/main.ts |
添加 Squirrel 事件处理 |
electron/preload.ts |
添加 IPC 通道暴露 |
electron/ipc/game.ipc.ts |
缺失文件检测 IPC |
electron/services/game.launcher.service.ts |
并行下载、JVM GC 优化、缺失文件检测 |
electron/services/p2pShare.service.ts |
自定义信令服务器配置 |
electron/services/watcher.service.ts |
崩溃报告查找功能 |
src/pages/SettingsPage.vue |
移除 CurseForge API Key 配置项 |
index.html |
CSP 策略修复、超时隐藏脚本 |
package.json |
新增依赖和测试脚本 |
删除文件
| 文件 |
说明 |
electron/services/starlight.launcher.ts |
启动器统一,删除冗余实现 |
兼容性说明
| 项目 |
要求 |
| 最低系统要求 |
Windows 10 (64-bit) |
| 最低内存 |
4GB RAM(推荐 8GB+) |
| 磁盘空间 |
500MB(不含游戏数据) |
| Java |
Java 8+(推荐 Java 17+) |
已知问题
- 首次启动可能需等待资源加载
- 深色主题切换需重启生效
- 部分网络环境下 P2P 连接可能不稳定
下一步计划
v0.6.x
- i18n 界面接入:将 vue-i18n 集成到所有页面
- 性能优化:虚拟滚动、Web Worker 离线计算
- 测试覆盖:完善单元测试和 E2E 测试
- 代码签名:提升安全性
v1.0.0
- 第一个生产就绪版本
- 完整的国际化支持
- 完善的测试覆盖
- 稳定性保障
感谢
感谢所有反馈问题和建议的用户!
MCLA - Minecraft Launcher Alpha