3.8.7命令行打包老丢失脚本

2025-9-18 15:14:30 - debug: Init bundle share assets success…, progress: 13%
2025-9-18 15:14:30 - error: Script “f02a3ZPhApKE5VMq7Fqhaz8” attached to “level” in prefab “level” is missing or invalid. Detailed information:
Node path: “level”
Asset url: “db://assets/resources/prefab/level”
Script UUID: “f02a364f-840a-4a13-954c-abb16a85acfc”
Class ID: “f02a3ZPhApKE5VMq7Fqhaz8”

在没有代码变化得情况下,重复多次命令行打包,会有几次出现脚本丢失得情况。

顶一下,贴一个相关 Issue

1赞

感谢反馈,已经通知脚本工程师。

1赞

你提供的demo中扩展的作用是什么?

扩展自己写的,就是用命令行连续构建 10 次,核心代码是:

    build() {
        /** 构建次数 */
        let buildTimes = 10;
        /** 初始化当前次数 */
        let nowTimes = 0;
        /** Cocos 执行程序路径 */
        let cocosPath = join(dirname(dirname(Editor.App.path)), 'CocosCreator.exe');
        /** Cocos 项目路径 */
        let projectPath = Editor.Project.path;
        /** 命令行 */
        let command = `${cocosPath} --project ${projectPath} --build "platform=web-mobile"`;
        let task = () => {
            exec(command, (err, stdout, stderr) => {
            console.log(stdout);
            if (nowTimes < buildTimes) {
                nowTimes++;
                task();
            }
        });
        }
        task();
    }

你可以直接看源码

我临时处理了,检测日志文件,如果失败了就重新发布。一直发布到日志成功

2赞

这个是个老问题了,暂时看起来没办法解决

我们处理方法是在扩展里延时轮询assetdb有没有加载完,算是没有办法的办法

1赞

啥时候能解决!

你提供的项目在我本地无法复现问题。可以试试加setTimeOut延迟试试。

是这样得,可能项目比较庞大,我看工具打开得时候右小角在编译中,使用cmd发布就容易出现了,但是等右下角编译中转完又好了,那就是cmd发布得步骤里面缺失了。这个从哪里入手处理么!

同时编译,可能导致文件读写异常。暂时不支持并发编译。

但是我是直接命令行git拉取,然后命令行执行发布的,编辑器没打开应该不存在同时编译,还是出现脚本丢失,说明命令行里没有等脚本刷新完就执行了操作。