微信小程序远程更新bundle错误

版本3.8.6
创建了一个bundle,image 然后上传到服务器上,在微信小程序上可以正常读取,此时我修改了一下这个bundle文件然后打包覆盖掉原来服务器上的文件image
最后用
public loadData() {

    let options = {

        version: '05c31',

    };

    assetManager.loadBundle('data', options, (err, bundle) => {

        if (err) {

            console.log('载入失败:', err);

            return;

        }

        // console.log('loadBundle data success.');

        bundle.load('abode', JsonAsset, (err, jsonAssets) => {

            if (err) {

                console.error('载入数据失败:', err);

            } else {

                // console.log('load jsonAssets success.', jsonAssets);

                console.log(jsonAssets.json);

            }

        });

    })

}

读取,此时微信小程序上提示


请问,为什么会这样,我需要怎么做,才能更新这个bundle。。

帖子别沉啊。我感觉这个功能挺重要的,有资源可以直接更新,而不需要每次打包到微信上提审

md5变了

前面打包的和现在打包出来的index.xx.js里面的xx也就是md5不一样吧

1赞

你更改了bundle的version,但是小游戏包里面没有对应版本的js文件

1赞

直接打包出来,没有index.xx.js文件,只有单独打包出来才会有这个文件。

System.register(“bundle://data/_virtual/data”,[],(function(){return{execute:function(){}}}));

(function® {

r(‘virtual:///prerequisite-imports/data’, ‘bundle://data/_virtual/data’);

})(function(mid, cid) {

System.register(mid, [cid], function (_export, _context) {

return {

    setters: [function(_m) {

        var _exportObj = {};

        for (var _key in _m) {

          if (_key !== "default" && _key !== "__esModule") _exportObj[_key] = _m[_key];

        }

 

        _export(_exportObj);

    }],

    execute: function () { }

};

});

});
而且这个index.xx.js文件,貌似都是一样的,为啥微信小程序重新打包后,还要额外加载一个这个js文件呢,很奇怪啊

加载一个包会加一个config文件和js文件·名称里面都有版本号,你更改了这个只能保证config文件加载对了·js文件没有的对应的,你可以参考下我写的https://forum.cocos.org/t/topic/155155看对你又帮助没

看了你的办法,直接改引擎加载方式确实可以解决。但是改了引擎后,在微信小程序上就没办法使用微信引擎插件了。我感觉这个地方是cocos导出和读取的Bug,因为这个js文件在微信小程序上好像是毫无意义的。读取资源完全没必要读取这个index.xx.js文件

为了支持代码分包的嘛·代码也可以放在包里面·