发表日期:2017-09 文章编辑:小灯 浏览次数:1347
weweb是一个兼容小程序语法的前端框架,你可以用小程序的写法,来写web应用。如果你已经有小程序了,通过它你可以将你的小程序运行在浏览器中。在小程序大行其道的今天,它可以让你的小程序代码得到最大限度的发挥,他具有以下优点:
该项目基于小程序开发者工具内置的小程序运行框架来实现的,我们在仔细研究了小程序官方的底层框架后,实现了小程序运行在web端的service和view引擎,为了使weweb能适应web端的性能要求,相较小程序原生框架,主要有以下调整:
开发方式可以直接套用你以前开发小程序的方式,不需要另外的学习成本,只是在小程序开发完后,通过下面介绍的二种运行方式,把小程序编译转换成相应的h5应用,然后把编译后的代码扔到服务器上就行了
请先在系统中安装node,官方的安装包会同时为您装上依赖管理工具npm
安装:
npm install weweb-cli -g 运行示例:
#./demos/demo20170111/这是小程序的存放路径 weweb ./demos/demo20170111/ Options:
# clone [weweb]项目后安装依赖 npm i# 构建核心库: npm run build# 运行示例: ./bin/weweb ./demos/demo20170111/# 压缩app代码:使用环境变量 NODE_ENV=production NODE_ENV=production ./bin/weweb demos/demo20170111# 替换编译器:当默认编译出错时使用环境变量 DFT_CMP=true 可切换为微信开发者工具自带的编译器 DFT_CMP=true ./bin/weweb demos/demo20170111# 环境变量可以组合使用 NODE_ENV=production DFT_CMP=true ./bin/weweb demos/demo20170111 demo小程序二维码如下:
小程序二维码weweb编译后的h5在线地址
可以比较一下小程序和转换后生成的h5应用的差异
demo源码
weweb默认使用我们自己写的编译器对wxml和wxss进行编译,但目前编译器还处于试用阶段,有些case可能没测全,使用weweb过程中如果发现一些异常情况,可以尝试切换成微信官方编译器,看看是不否能解决问题。出现类似问题欢迎大家给我们提issue。我们将尽快修正
# 切换成微信开发者工具自带的编译器:使用环境变量 DFT_CMP=true 如下:DFT_CMP=true ./bin/weweb demos/demo20170111 转换成H5后,会存在跨域访问接口及脱离微信环境带来的一些api无法支持的问题。我们可以通过在小程序的app.json文件中增加weweb配置项来解决一些常见的问题:
loginUrl项来设置调用wx.login时跳转到的登录页面/*** 此处的loginUrl地址必须是在app.json里注册了的小程序地址*/"weweb":{ "loginUrl":"/page/H5login" }当登录成功后调用 wx.loginSuccess(); 这个api可以自动返回到来源页面 示例代码: success : function(rt){ if(rt.result){ var login = require("../../modules/login/index.js"); app.globalData.userInfo = rt.result; login.setLoginInfo(rt.result); wx.loginSuccess(); }else{ toast.show(self,rt.status.status_reason||'登录失败'); } } /*** 此处/remoteProxy是weweb自带server实现的一个代理接口* 实际项目中请改成自己的真实代理地址。如果接口支持返回jsonp格式,则无需做此配置*/"weweb":{ "requestProxy":"/remoteProxy" } https://github.com/wdfe/weweb,觉得赞的就给个star吧,开源的心需要大家支持:)。