美文网首页开发经验随笔码农的世界
__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