编译应用主题,不再需要一台虚拟显示器
来源:dev.to — 2026-10-26
📋 概述
Codename One 的 CSS 编译器现在完全无头运行:同一套主题可以在 SSH 会话、容器或 CI worker 上编译,不用先起 Xvfb 之类的虚拟帧缓冲。编译器构造字体、换算单位、处理图片时,过去碰这些 API 会把桌面初始化一起拖进来;新实现只提供主题构建真正需要的服务,图像仍用 Java 的 buffered image API 解码缩放,无显示器的构建照样处理视觉资源。无头实现还把主题构建时的换算值固定下来,不再取构建机显示器的参数,从而抹掉了开发机与 worker 之间的又一个差异来源。
🔑 核心要点
- 主题编译可以完全在无头环境完成,SSH、容器、CI worker 直接可用
- 过去构造字体和处理图片会把桌面初始化一起拖进来
- 换算值改为固定,消除开发机与 worker 之间的差异
- 输出仍是编译好的 theme.res,应用运行时并不解析样式表
💡 金句
“A build container shouldn't need a pretend monitor to compile a stylesheet.”
译:一个构建容器不该为了编译样式表,就需要一台假装存在的显示器。
← 返回 dev.to 首页