小程序|微信小程序转uniapp

首先。微信小程序转uniapp是有现成的js脚本的,比较方便,但是直接用js脚本转,完成后的效果不太好,尤其是用了插件的地方,会把插件内容直接加载进来,页面变得很大,我曾经转过一次,页面转换完成后有错不说,hbuilderx打开就会卡死。
最后。思考了我想要达到的目的,就是把.json,.js,.wxml,.wxss四个文件转换为vue就行了。其他的网络读取有现成的项目可以套用。所以需要把这几个文件按照规律拼接一下就行了。
进入正题,由于我擅长php,且项目周期感人,直接用php吧,cs版的有时间了再说
由于各个程序的运行环境不同,注意更换处理环境,不过多说
文件目录结构
小程序|微信小程序转uniapp
文章图片

第一。uniapp项目的pages.json是包含所有的页面路径和style的。直接上代码吧
由于项目app.json已经改成vue版的pages.json了,结果和微信小程序的结构不太一样,不过有开发基础的都能看的懂

$json=json_decode(file_get_contents('./pages.json'),true); foreach($json['pages'] as $k=>$v){ $path=$v['path']; $page_json=$path.'.json'; $page_json2=json_decode(file_get_contents("./".$page_json),true); $json['pages'][$k]['style']=$page_json2; } file_put_contents('./pages.json',json_encode($json,JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE));

第二。拼接vue文件
$json=json_decode(file_get_contents('./pages.json'),true); foreach($json['pages'] as $k=>$v){ $path=$v['path']; $vue=$path.'.vue'; $json=$path.'.json'; $wxml=$path.'.wxml'; $wxss=$path.'.wxss'; $js=$path.'.js'; $_wxml=file_get_contents('./'.$wxml); $_js=file_get_contents('./'.$js); $_wxss=file_get_contents('./'.$wxss); file_put_contents('./'.$vue, ''.$_wxss.' ' ); unlink($json); unlink($wxss); unlink($wxml); unlink($js); //exit; }

第三。转换完成后,由于微信小程序和vue语法不同,还要批量改语法
推荐用notepad++或sublime,我经常搞这种批量查找或替换程序的事,一般喜欢用正则,下面是几组替换正则
先替换这种标签 wx:xxx=“{{yyy}}”
wx:if="\{\{(.*?)\}\}"---替换为--->v-if="$1" wx:for=('|")\{\{(.*?)\}\}('|")\s+wx:key=('|")(.*?)('|")\s+wx:for-item=('|")(.*?)('|")---替换为--->v-for="\($8,$5\) in $2"

【小程序|微信小程序转uniapp】不搞了 耽误时间 闲了再补充

    推荐阅读