fix(skin): 修复最终评审发现的 6 处缺陷(junction 排除失效/meta 静默丢失等)
跨任务视角发现的问题:Critical1 materialize.mjs 的 junction 排除比较在 Windows 上因长路径前缀恒假、从未生效,且测试夹具的 junction 指向真源自身, 掩盖了此问题;Critical2 composeSkin 例外通道在 uuid 缺失/框架侧无 meta 时 静默失败,违反第二准则;Important3 可覆盖范围误把 theme/ 下的框架 TS 代码 也纳入;Important5 cli-entry 测试漏注册 check-skin/build-game;Important6 composeSkin 与 check-skin 各自拼路径,未共用 paths.mjs 权威推导;Important7 --platform 缺值时静默落到默认平台。逐条修复并补测试,Critical1 用诱饵框架 目录验证过能真正杀掉该 bug(变异推演见 fix report)。 spec §5 step5 的 dist/<name>/ 拷贝按要求标注为本期未实现,不实现。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -13,7 +13,9 @@
|
||||
在子游戏间完全相同;框架不带默认,这部分就要在每个子游戏各存一份且改了不会传播。
|
||||
2. **只放「所有子游戏都需要」的平台界面资源**。判定问句:*下一个子游戏还需要它吗?*
|
||||
「部分子游戏共用」**不构成**进框架的理由——放进去等于让其余子游戏白背包体。
|
||||
3. **目录划分 = 图集划分**。Cocos 的 Auto Atlas 只对同目录散图生效,故目录结构是性能设计:
|
||||
3. **目录划分 = 图集划分**。Cocos 的 Auto Atlas 只对同目录散图生效,故目录结构是性能设计。
|
||||
以下 **8 个目录**是可覆盖资源范围的全部(`scripts/lib/skin.mjs` 的 `COVERABLE_DIRS` 白名单,
|
||||
与此表逐字对应):
|
||||
| 目录 | 用途 |
|
||||
|---|---|
|
||||
| `atlas-common/` | 全程常驻:按钮、面板底、图标、通用弹窗 |
|
||||
@@ -21,6 +23,10 @@
|
||||
| `standalone/` | 超图集尺寸上限的大图、整屏背景(不进图集) |
|
||||
| `spine/` | Spine 骨骼动画,**每个资源一个子目录**,含骨骼数据/atlas/贴图 |
|
||||
| `audio/` / `font/` | 平台音效 / 字体 |
|
||||
|
||||
**`theme/` 不在此列**——那是 §4.2 规定的**框架 TypeScript 代码**位置(类型契约 + 默认值 +
|
||||
合并 + Provider),不是资源,**不可覆盖**、也不计入"框架可覆盖资源共 N 个"的统计。子游戏若在
|
||||
`override/theme/` 下放文件会被判为 `orphan`(框架里没有对应的可覆盖路径)。
|
||||
4. **图片资源统一用 PNG**。非 PNG 图片不做尺寸校验(`scripts/lib/skin.mjs`),会削弱保护。
|
||||
|
||||
## 子游戏怎么换肤
|
||||
|
||||
Reference in New Issue
Block a user