项目地址: github.com/chemzqm/wep…
主要功能:
- 实时更新,支持 wxml wxss javascript json
- 更加稳定,不像官方工具经常出错
- 没有限制,无需联网,无需后端配置 CORS ,支持移动浏览器调试
实时刷新演示优酷视频地址: v.youku.com/v_show/id_X…
个人测试 Mac 和 win7 上可用,如遇到 bug ,欢迎 github 开 issue 。
详细介绍
WEPT 是一款微信小程序实时运行环境,相比于现在官方提供的开发者工具,它具备以下几个特点:
完全实时:它已全面支持 wxml, wxss,javscript 和 json 文件的自动热更新,文件保存后相应变化会自动更新到小程序的运行环境,开发者完全不需要重建、重启操作,绝大多数情况下(除非修改 app.json )也不需要刷新。因为没有了刷新,开发者不用再费时去操作界面重现修改前的页面状态。整个过程支持多终端同步进行。
更加稳定: WEPT 的小程序构建过程相比官方工具要更加稳定,不会像官方工具一样经常性报错
appservice not ready
,甚至直接崩溃,如果遇到后台或者小程序构建错误,它会在页面上即时给出错误提醒。如果你安装了 growl或者 terminal-notifier,它还会同时在桌面上弹出错误提醒。没有限制: WEPT 生成的小程序页面可以运行在移动端浏览器上面,使用过程也无需联网。它通过一个定制的代理协议使用后台转发 XHR 请求,开发者无需配置后端 CORS 即可调试。
更多的 API: WEPT 除了支持全部官方已支持 API 之外,还实现了重力感应和罗盘的 API,你可以在支持相应 html5 接口的移动端浏览器上进行调试。
💡实现原理💡
详细的实现方式请参考我之前发的文章:
简单说它就是一个与后端通过 WebSocket 接口与前端进行实时通讯的 web 服务。后端服务请求时动态编译所需文件,
前端通过 iframe 实现了 view 层、service 层以及控制层页面的多方通讯和控制逻辑。
前端 view 层和 service 层代码来自微信开发者工具最新版本(目前是 101100,
稍作修改以支持 iframe 通讯以及自动更新),控制层页面是完全重新实现的,使用了一点 React
进行 UI 状态同步。
🛠安装 & 使用 🛠
首先你需要安装 node,请确保版本大于 6.0,低版本有可能报错。
然后任意目录运行:
npm install -g wept
安装完成后在项目根目录下运行, 官方 demo 下载:
wept
即可开启服务,访问 http://localhost:3000
开始调试(推荐使用 Chrome developer devtools 开启启动模式调试),
你也可以通过 -p
参数换个端口,例如:
wept -p 4000
手机访问记得使用电脑的局域网 IP 地址。
📝API 支持情况 📝
以下是当前所有小程序 API 的支持情况:
- ✓ app.json window 设置
- ✓ app.json tabbar 设置
- ✓ 微信登录:目前返回同官方工具无 appid 状态一致,为模拟返回
- ✓ 获取用户信息接口:返回测试用数据
- ✗ 发起支付:同官方工具无 appid 状态,无法使用
- ✓ 设置界面标题
- ✓ 标题栏加载动画
- ✓ 页面跳转
- ✓ 下拉刷新
- ✓ 创建动画
- ✓ 创建 Canvas 绘画
- ✓ 获取手机网络状态:默认返回
WIFI
- ✓ 获取手机系统信息:同官方工具,返回为模拟返回
- ✓ 监听重力感应数据:支持 Safari mobile 等移动浏览器调试,官方工具(101100)不支持
- ✓ 监听罗盘数据:支持 Safari mobile 等移动浏览器调试,官方工具(101100)不支持
- ✓ request 请求接口
- ✓ websocket 接口
- ✓ 上传、下载文件
- ✓ 保存文件
- ✓ 选择/预览图片
- ✓ 选择视频
- ✓ 录音 API
- ✓ 音频播放控制
- ✓ 背景音乐控制
- ✓ 获取当前位置
- ✓ 使用原生地图查看位置
- ✓ storage 同步 API
- ✓ storage 异步 API
🔭未来计划 🔭
- 图片预览功能支持
- wxml,storage,appData 开发者工具面板支持
- 提供桌面端工具支持
❤️感谢❤️
特别感谢我司 匠物 对于开源项目的理解和大力支持。
如果您在使用过程中遇到问题请及时到 github 进行反馈,我会尽快处理。