weweb 简介优点适用场景开发运行方法一:使用cli命令行工具方法二:手动构建并运行:开发用命令在线演示demo注意事项转换效果说明 介绍
简介
weweb是一个兼容小程序语法的前端框架,你可以用小程序的写法,来写web应用。如果你已经有小程序了,通过它你可以将你的小程序运行在浏览器中。如果你熟悉vue的语法,也可以使用wepy编写小程序,再通过weweb转换后将其运行在web端。
优点
该项目基于小程序开发者工具内置的小程序运行框架来实现的,我们在仔细研究了小程序官方的底层框架后,实现了小程序运行在web端的service和view引擎,为了使weweb能适应web端的性能要求,相较小程序原生框架,主要有以下调整:
-
框架核心库进行了大量精减,剔除web不相关的部分,使核心库体积大大减小
-
将原有的三层架构精简为Service和View两层架构
-
页面资源、框架内置组件均使用异步加载,提升加载速度
-
实现了js版的wxml和wxss编译器以适应跨平台编译需求并无缝整合至weweb
适用场景
开发
开发方式可以直接套用你以前开发小程序的方式,不需要另外的学习成本,只是在小程序开发完后,通过下面介绍的二种运行方式,把小程序编译转换成相应的h5应用,然后把编译后的代码扔到服务器上就行了
运行
请先在系统中安装node,官方的安装包会同时为您装上依赖管理工具npm
方法一:使用cli命令行工具
安装:
npm install weweb-cli -g
运行示例:
weweb ./demos/demo20170111/
Options:
-
-h, –help 输出帮助信息
-
-V, –version 输出版本信息
-
-o, –open 使用 Chrome 打开小程序,仅对 Mac 有效
-
-l, –list 使用默认浏览器打开更新历史
-
-p, –port
指定服务端口,默认 2000 -
-d, –dist
指定生成的路径 -
-t, –transform 只转换小程序,不起web服务
方法二:手动构建并运行:
# clone此项目后安装依赖 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
开发用命令
# 自动执行rebuild npm run dev # 自动重启服务器 npm run autostart
在线演示demo
注意事项
weweb默认使用我们自己写的编译器对wxml和wxss进行编译,但目前编译器还处于试用阶段,有些case可能没测全,使用weweb过程中如果发现一些异常情况,可以尝试切换成微信官方编译器,看看是不否能解决问题。出现类似问题欢迎大家给我们提issue。我们将尽快修正
# 切换成微信开发者工具自带的编译器:使用环境变量 DFT_CMP=true 如下: DFT_CMP=true ./bin/weweb demos/demo20170111
转换成H5后,会存在跨域访问接口及脱离微信环境带来的一些api无法支持的问题。我们可以通过在小程序的app.json文件中增加weweb配置项来解决一些常见的问题:
-
登录:转换成H5后将不支持小程序原生的登录方式,可通过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||’登录失败’);
}
} -
跨域请求:当后端接口不支持JSONP时,可以增加requestProxy配置项来设置服务器端代理地址,以实现跨域请求
/*
* 此处/remoteProxy是weweb自带server实现的一个代理接口
* 实际项目中请改成自己的真实代理地址。如果接口支持返回jsonp格式,则无需做此配置
/“weweb”:{
“requestProxy”:”/remoteProxy”
}
转换效果说明
weweb 简介优点适用场景开发运行方法一:使用cli命令行工具方法二:手动构建并运行:开发用命令在线演示demo注意事项转换效果说明 官网
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。