美文网首页开发经验随笔码农的世界
__vd_version_info__ is not defin

__vd_version_info__ is not defin

作者: 山东大葱哥 | 来源:发表于2019-08-26 10:30 被阅读2次

    微信小程序在解包后,会出现vd_version_info is not defined 的错误提示,这是解包程序和微信小程序版本升级之间的差异造成的,微信小程序的版本升级会对封包解包产生影响,那么问题如何解决呢?
    其实解包程序也是基于js开发的,所以解决办法自然就是对准js代码进行修复。

    对应的就是如下代码文件
    修改wxappUnpacker文件中的 wuWxss.js

    function runVM(name, code) {
                    //这是原来的代码
            //let wxAppCode={},handle={cssFile:name};
            //let vm=new VM({sandbox:Object.assign(new GwxCfg(),{__wxAppCode__:wxAppCode,setCssToHead:cssRebuild.bind(handle)})});
            //vm.run(code);
            //for(let name in wxAppCode)if(name.endsWith(".wxss")){
                //handle.cssFile=path.resolve(frameName,"..",name);
                //wxAppCode[name]();
            //}
     
          //一下为新修改的代码:
          let wxAppCode = {};
          let handle = {cssFile: name};
          let gg = new GwxCfg();
          let tsandbox = {
             $gwx: GwxCfg.prototype["$gwx"],
             __mainPageFrameReady__: GwxCfg.prototype["$gwx"],   //解决 $gwx is not defined
             __vd_version_info__: GwxCfg.prototype["$gwx"],  //解决 __vd_version_info__ is not defined
             __wxAppCode__: wxAppCode,
             setCssToHead: cssRebuild.bind(handle)
          }
     
          let vm = new VM({sandbox: tsandbox});
          vm.run(code);
          for (let name in wxAppCode) {
             if (name.endsWith(".wxss")) {
                handle.cssFile = path.resolve(frameName, "..", name);
                wxAppCode[name]();
             }
          }
    }
    

    经过修复后再次运行解包程序,对微信小程序进行解包,圆满解决,微信小程序正常的还原了出来。
    小程序升级后,加了一些功能特性,所以对应的解药也要增加一些变动支持。

    相关文章

      网友评论

        本文标题:__vd_version_info__ is not defin

        本文链接:https://www.haomeiwen.com/subject/hiqykctx.html