Skip to content

MCLA v0.5.4 修复了两个lssues等之前版本未修复的问题

Latest

Choose a tag to compare

@nnkmn nnkmn released this 20 Jun 12:48
· 4 commits to main since this release

发布日期: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