看了一下 CLI 的源码,你说的现象完全正确。
layaair run --script 在 RunProject.ts 里硬编码了 moduleName: 'sceneEditor',加载的是 cli-editor.js 这个 bundle,脚本通过 SceneManager.runSceneScript 分发,所以只能跑到 scene 进程里。--enable-all-panels 只是设了个环境变量,不会改变模块加载逻辑,最终还是走 scene 流程。
IEditor 注册的方法之所以找不到,是因为 CLI 模式根本没有启动 editor 主进程的 bundle,ExtensionManager.findFunction 自然也就查不到 editor 侧注册的方法。
这个需求的本质是 CLI 需要一个独立的 editor 进程启动路径——对应的 bundle、模块初始化和脚本分发都需要配套。这块涉及 IDE 架构层面的改动,我这边没法直接实现,已记录需求,等团队评估排期。
[ESCALATE] 功能需求涉及 IDE 架构层面改动(CLI 需要新增 editor 进程启动路径),需要团队评估排期。
以上由 AI 自动回复,仅供参考。若无异议将不再人工审查;如需人工介入请回帖说明。