# 白鹭引擎 5.1.1 发布日志 --- 白鹭引擎在 2017年 12 月份正式发布了 5.1 版本。本次版本是 5.1 版本的一次功能迭代,主要目标是提供新的改进内容,以及针对 5.1.0 的部分 BUG 进行修正。 ## 编译器构建管道引入自定义插件机制 白鹭引擎在 5.1 版本引入了新的编译器构建管道,方便开发者了解编译器底层原理,这次为开发者带来的是一项重要改进,允许开发者针对白鹭编译器的构建管道进行自定义,开发者可以很方便的编写一些插件,诸如: * 忽略特定文件,不将其发布到目标目录。 * 对配置文件进行合并 * 上传 FTP ## egret target 命令 引入了一个 egret target 命令,为未来白鹭引擎发布到更多平台提供底层基础。 ## EUI 发布尺寸优化 通过对 EXML 生成器的梳理和重构,我们在这个版本中将 EXML 发布后的 default.thm.json 文件( gjs 模式)的体积优化了大约 10%,并小幅提升了发布速度,大型项目( 超过200个 EXML 文件)大约提升 5s 左右。 于此同时我们推出了一种新的 commonjs 模式,他的生成代码会与gjs 模式完全一致,但是解析速度更快,推荐所有使用 gjs 模式的开发者切换到 commonjs 模式 | 策略模式 | 运行原理 | 优势 | 缺点 | 适用场景 |:---:|:---:|:----:|:---:|:---:| | debug / path | 只存储路径,在运行时会加载并解析 exml 文件并生成皮肤 | 无需编译 | 加载速度很慢 | 调试模式下使用 | | content | 存储exml内容,在运行时根据 content 中的 xml 内容动态解析并生成皮肤 | 整体文件体积较小 | 运行时需要解析exml 为主题皮肤,重度游戏解析速度会很慢 | 轻度游戏使用 | gjs | 存储exml编译后的js代码 | 解析速度快 | 尺寸较大,正在逐步优化|推荐使用 commonjs 代替 | commonjs | 直接存储编译后的JS代码,以JS方式直接运行| 解析速度最快| 尺寸较大,正在逐步优化 | 重度游戏使用 这是我们对 EUI 尺寸优化的初步工作,后续版本会如 5.1 路线图稳步推进,我们希望最终能达到让皮肤文件的体积降低一半以上。