特别活动|「PinK Beta 首席体验官」招募× 抓虫大赛

有系统信息吗?然后看看有没有报错?

【Bug 提交】PinK play 实时预览画面全黑(UI 可见),脚本编译因 console.time is not a function 全部失败

PinK 版本号

0.0.2.0 Beta(内置引擎 4.0.0-beta.0)

系统环境

  • macOS(Apple Silicon)
  • 项目:pink(TypeScript + 2D UI,工程为 3D 模板但按 2D 实现)
  • 预览方式:PinK 内置「简单浏览器」/ 编辑器 play 按钮( http://localhost:9527/?scene=<scene-uuid> )

复现步骤

  1. 打开项目,编辑任意 scripts 下的 .ts 脚本并保存(或在资源管理器中刷新 db://assets )。
  2. 点击 PinK 的 play 按钮,或用「简单浏览器」打开预览页。
  3. 观察预览画面。

期望表现

预览中能看到完整游戏世界层(地面、角色、敌人)与 UI,画面与最新源码一致。

实际表现

  1. 场景加载成功,UI 层正常渲染并运行;
  2. 世界层(地面贴图、角色、敌人) 全黑 ,看不到任何实体;
  3. 由于预览运行的是 旧的编译产物 ,与最新图集帧定义不匹配,导致 SpriteFrame 取帧失败;
  4. 编辑器日志中脚本导入持续失败,报错:TypeError: console.time is not a function;
  5. 该错误对 每个 .ts 均触发(全部 imported: false、invalid: true);
  6. 对比验证:构建发布 → web-mobile 产出的包运行 完全正常,说明源码本身无问题,仅「编辑器内脚本编译/预览」通道失效。

关键证据

检查项 结果
assets/scripts/**/*.ts.meta 中 imported 全部 false
预览 /scripting/x/chunks/... 中的代码产物 旧版缓存
tsc --noEmit 类型检查 assets 下无错误
构建产物(web-mobile) 运行正常,世界层与 UI 均可见

根因

packer-driver 的 applyAssetChanges(dist/core/scripting/packer-driver/index.js)无条件调用了 console.time('update entry mod') / console.timeEnd(...),而当前宿主环境的 console 对象未实现这两个方法,抛出 TypeError,导致 ScriptManager.compileScripts 整体中断、脚本资源导入失败,预览被迫回退到旧编译缓存。

建议修复

  1. packer-driver 中所有 console.time / console.timeEnd 增加方法存在性判断(如 console.time?.()),或改用内部 logger 计时;
  2. 脚本编译失败时在编辑器 UI 给出显式阻断与报错提示,避免「静默沿用旧产物」造成误导性异常。

附件

UUID

服务器 uuid:18718c50130b4830b058cb4f477b810c (这是一个查问题的聊天)

终于更新了 我想问和vscode+codex的区别是?

lzma_worker-min.zip (9.3 KB)

添加 LZMA 库后会报错, 文件放进去未勾选 导入为插件 也报错, 在老的 3.8 上没这个问题