微信小程序转uniapp

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

第一。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,
		'
		
		'
	);
	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"

不搞了 耽误时间 闲了再补充

你可能感兴趣的:(小程序,php,js,vue.js,php)