微信小程序转uniapp

2025-03-09 13:44:20

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


第一。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));
1
2
3
4
5
6
7
8
第二。拼接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;
}
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
第三。转换完成后,由于微信小程序和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"

————————————————

转自:https://blog.csdn.net/zepcjsj0801/article/details/124287160

发表评论:

Powered by PHP 学习者(mail:517730729@qq.com)

原百度博客:http://hi.baidu.com/ssfnadn

备案号:闽ICP备17000564号-1

开源中国 PHPCHINA