百度出來(lái)一堆收費(fèi)教程,全是簡(jiǎn)書(shū)上的碎罚,真優(yōu)秀啊磅废。秉承知識(shí)有價(jià),分享無(wú)價(jià)的精神荆烈,我終于用谷歌找到了眾多免費(fèi)教程拯勉,感謝無(wú)私分享的各位大佬們。分享有你憔购,春暖花開(kāi)宫峦。
下面是正事:
由于微信小程序升級(jí)的原因, github 上的?wxappUnpacker-master?小程序反編譯工具已部分失效玫鸟,運(yùn)行?node wuWxapkg.js?命令時(shí)會(huì)報(bào)?$gwx is not defined?或__vd_version_info__ is not defined錯(cuò)誤
導(dǎo)致?page-frame.html?文件無(wú)法反編譯导绷,無(wú)法解開(kāi)?wxss?格式文件,wxss?文件缺失屎飘。
首先是$gwx is not defined妥曲,這種報(bào)錯(cuò)是最多的一種,如圖所示:
那么解決辦法就是:
修改反編譯腳本wuWxss.js代碼
將原代碼:
```
functionrunVM(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]();
? ? }
}
```
修改為:
```
functionrunVM(name,code){
? ? let wxAppCode={},handle={cssFile:name};
? ? let gg = new GwxCfg();
? ? let tsandbox ={$gwx:GwxCfg.prototype["$gwx"],__mainPageFrameReady__:GwxCfg.prototype["$gwx"],__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 defined錯(cuò)誤
解決方法如下:
找到
function runOnce() {枚碗。逾一。。肮雨。遵堵。。怨规。陌宿。。波丰。壳坪。。掰烟。爽蝴。。纫骑。}
這個(gè)函數(shù)蝎亚,替換成如下代碼。
```
function runOnce() {
for (let name in runList) {
// console.log(name, runList[name]);
var start = `var window = window || {}; var __pageFrameStartTime__ = Date.now(); var __webviewId__; var __wxAppCode__={}; var __mainPageFrameReady__ = function(){}; var __WXML_GLOBAL__={entrys:{},defines:{},modules:{},ops:[],wxs_nf_init:undefined,total_ops:0}; var __vd_version_info__=__vd_version_info__||{};
$gwx=function(path,global){
if(typeof global === 'undefined') global={};if(typeof __WXML_GLOBAL__ === 'undefined') {__WXML_GLOBAL__={};
}__WXML_GLOBAL__.modules = __WXML_GLOBAL__.modules || {};
}`;
runVM(name, start + " \r\n" + runList[name]);
}
}
```
解決不了這兩個(gè)報(bào)錯(cuò)你來(lái)砍我先馆,另外发框,谷歌真香!