当前位置: 首页 > 后端技术 > Node.js

让你的“微信小程序”运行在Chrome浏览器上,让我们使用WebStorm

时间:2023-04-04 00:41:39 Node.js

“微信小程序”的开发框架来体验一下,不错——自带UI框架。但是问题出在他的IDE上,表现的相当糟糕——其实主要是因为我买了多年的WebStormLicense。所以,我觉得他的IDE没有我的好用。而且,作为一个支持自由和开源的“GitHub中国首席Markdown程序员”。微信在“微信小程序”中领先网页关闭,我们再也不能愉快地分享我们的代码了。如果放任自流,Web世界的未来堪忧。好了,废话结束:文章太长不想看,可以直接看demo哈哈:GitHub:https://github.com/phodal/weapp-webdemo预览:http:///weapp.phodal.com/下真实世界MINA“微信小程序”的三个基本要素背后是一个叫做MINA的框架。在之前的文章中,我们已经介绍的差不多了。现在介绍管道:转换wxml和wxss当我们修改WXML和WXSS时,我们需要重新编译项目才能在浏览器上看到效果。这时候后台会进行一些transform动作:wcc会把wxml转成generateFun,执行这个方法会得到一个虚拟的domwxss,把wxss转成css——这个有待商榷。wcc和wxss可以在vendor目录下获取,在“微信web开发者工具”下输入help,会得到如下东西:运行openVendor(),会得到上面的wcss、wxss、WAService.js、WAWebview.js四个文件。转换js文件是对js文件进行组装的过程,下面是我们的app.js文件:App({onLaunch:function(){}})转换后会变成:require,module){varwindow={Math:Math}/*与babel兼容*/,location,document,navigator,self,localStorage,history,Caches;App({onLaunch:function(){}})});要求(“app.js”);我就当你已经知道这是什么了,我不想知道,反正我也不解释~~。同于:define("pages/index/index.js",function(require,module){varwindow={Math:Math}/*compatiblewithbabel*/,location,document,navigator,self,localStorage,history,caches;Page({data:{text:initData}});require("pages/index/index.js");至于它是如何替换或者附加到html的,我就不解释了。MINA是如何工作的?为了运行一个Page,我们需要一个virtualdom,也就是wcc转换的函数,比如:/*v0.7cc_20160919*/var$gwxcvar$gaic={}$gwx=function(path,global){function_(a,b){b&&a.children.push(b);}function_n(tag){$gwxc++;if($gwxc>=16000){throw'够了,超过dom限制,你不做傻事,你呢?'};返回{tag:tag.substr(0,3)=='wx-'?tag:'wx-'+tag,attr:{},children:[]}}函数_s(scope,env,key){returntypeof(scope[key])!='undefined'?scope[key]:env[key]}function_wl(tname){console.warn('模板`'+tname+'`正在递归调用,将被停止。')}function_ai(i,p,e,me){varx=_grp(p,e,me);if(x)i.push(x);else{安慰。warn('path`'+p+'`notfoundfrom`'+me+'`')}}function_grp(p,e,me){if(p[0]!='/'){varmepart=me.split('/');mepart.pop();varppart=p.split('/');for(vari=0;i添加行removeline我们写的wxml是这样的:{{text}}添加行删除行明显查看会转成wx-view,text会转成wx-text等等,等等。这个转换是在virtualdom.js中调用的,调用方法是exparser。可惜卡在数据初始化上了~~,里面有两个不同的事件系统,有些麻烦。其中一个是:WeixinJSBridge,另一个是AppEngine中的事件系统。两人似乎水火不容。..在使用WebStorm开发运行在浏览器上之前,我们需要一些简单的mock方法,比如:window.webkit.messageHandlers.invokeHandler.postMessagewindow.webkit.messageHandlers.publishHandler.postMessageWeixinJSCore.publishHandlerWeixinJSCore..invokeHandler然后在config中放一些。json的内容变成了__wxConfig,如:__wxConfig={"debug":true,"pages":["index"],"window":{"backgroundTextStyle":"light","navigationBarBackgroundColor":"#fff","navigationBarTitleText":"WeChat","navigationBarTextStyle":"black"},"projectConfig":{},"appserviceConfig":{},"appname":"fdfafafafafafafafa","appid":"touristappid","apphash":2107567080,"isTourist":true,"userInfo":{}}比如我们这里的appname是哈哈哈哈哈哈——我家在福建。然后在我们的html中引入各个js文件,啦啦。我们还需要一个自动化的glup脚本来观察wxml和wxss的修改,然后编译,如:exec('./vendor/wcc-d'+inputPath+'>'+outputFileName,function(err,stdout,stderr){console.log(stdout);console.log(stderr);});说了这么多,不妨看看代码:GitHub:https://github.com/phodal/weapp-webdemo预览:http://weapp.phodal.com/