From acf8851854976f99a6856b6b9f30ba53cb7cbbf2 Mon Sep 17 00:00:00 2001 From: aistri <35402705+aistri@users.noreply.github.com> Date: Thu, 24 Oct 2019 21:26:52 +0800 Subject: [PATCH] Update wuWxss.js --- nodejs/nodejs/wuWxss.js | 52 +++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/nodejs/nodejs/wuWxss.js b/nodejs/nodejs/wuWxss.js index 178ff71..3f17304 100644 --- a/nodejs/nodejs/wuWxss.js +++ b/nodejs/nodejs/wuWxss.js @@ -63,16 +63,41 @@ function doWxss(dir,cb){ result[cssFile]+=makeup(data); }; } - function runVM(name,code){ - code = code.replace('__mainPageFrameReady__()', ''); - 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](); - } - } + +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](); + } + } + } function preRun(dir,frameFile,mainCode,files,cb){ wu.addIO(cb); runList[path.resolve(dir,"./app.wxss")]=mainCode; @@ -83,8 +108,11 @@ function doWxss(dir,cb){ }); } } - function runOnce(){ - for(let name in runList)runVM(name,runList[name]); + function runOnce() { + for (let name in runList) { + // console.log(name, runList[name]); + runVM(name, runList[name]); + } } function transformCss(style){ let ast=csstree.parse(style); -- GitLab