最近公司要求把已有的微信小程序在百度上再做一个,大概看了一下百度的小程序文档框架跟微信的很类似,于是产生了一个大胆的想法,写个脚本自己转过来(个人一直认为把原有的业务复制修改一次太二了)。
注意:之前没接触过脚本研究了几天总算写出一个并不能完全转换的脚本。现在开源出来希望有大神能看到并且能帮忙填几个坑上去
话不多说,上链接:
码云:https://gitee.com/dpnet/rename
GitHub:https://github.com/DaoPinWong/shell-transition
使用方式
将下载下来的文件放入工程
执行脚本
然后就可以用百度的开发工具打开,非常简单
使用shell脚本,主要有以下功能:
-改wxss文件为css文件
-改wxml文件为swan文件
-修改wx:if的标签方法为s-if
-修改wx:else的标签方法为s-else
-修改wx:for的标签方法为s-for
-去除js文件里的this.route属性调用
-修改wx.开头的原生API调用为swan.
目前实测下来发现以下几个(不仅限)坑请大家规避:
-无法使用微信的登录授权,需要另写百度的登录授权方法
-无法使用微信的支付,需要另写百度的支付方法
-百度不支持wsx,需要把里面的代码拿出来写到其它地方
-百度不支持wx[this.data.linkType].call(wx, {url});类似的对象方法
-百度不支持只写s-for-items 需要补全s-for="xxx" s-for-index="idx" s-for-item="p"
-百度对Flexible Box布局的兼容不是很友好,建议不用Flexible Box布局
写在最后:我们自己的项目修改了以上几个问题后可以运行,欢迎大家发现其它坑能在评论区留言,最好还能留下解决方式。由于本人之前没写过脚本,道行不深,能力有限,不知道还能不能完善脚本,虽说不能完全转换,但是也好过写代码的时候一个一个文件复制修改。