一、使用自动化工具快速转换
最有效率的方式是使用官方推荐的 miniprogram-to-uniapp 工具(命令行版本)
1. 安装工具
首先,确保你的电脑已安装 Node.js,然后在命令行中运行以下命令进行全局安装:
bash
npm install miniprogram-to-uniapp -g
安装完成后,输入 wtu -V 检查是否安装成功,若显示版本号则说明安装正确。
2. 执行转换命令
使用以下命令开始转换(注意 -i 参数前后都有空格):
bash
wtu -i "你的微信小程序项目路径"
例如:
bash
wtu -i "E:\my-wechat-miniprogram"
可选参数:你还可以根据需求添加一些参数,让转换结果更符合你的习惯:
-
-m:将wxss样式文件合并到vue文件中。 -
-c:将项目转换为vue-cli项目结构。 -
-t:将template和include标签转换为单独的组件。
例如:将wxss样式文件合并到vue文件中。
bash
wtu -i "你的微信小程序项目路径" -m
3. 查看转换结果
命令执行成功后,你会在原小程序项目的同级目录 下找到一个名为 原项目名_uni 的文件夹,这就是转换好的uni-app项目。
二、导入项目并手动修复
自动化工具无法做到100%完美转换,许多语法和逻辑需要你手动调整。
1. 导入项目到HBuilderX
打开HBuilderX开发工具,选择文件 -> 导入 -> 从本地目录导入,然后选择刚才生成的原项目名_uni文件夹。
2. 关键代码的手动修复清单
转换后的代码通常存在一些问题,需要重点检查和修复以下内容:
JavaScript 语法调整
-
数据绑定方式变了 :将
this.setData({ a: 1 })改为this.a = 1。这是最需要习惯的改变,因为uni-app使用Vue的数据绑定方式。 -
API 前缀替换 :将
wx.开头的API全部改为uni.,例如wx.request改为uni.request。 -
全局对象删除 :删除
const app = getApp()这段代码,使用uni-app的全局变量方式替代。 -
生命周期调整 :
onLoad(options)函数中获取页面参数的方式可能需要调整,可以尝试使用this.$Route.query。 -
WXS脚本替换 :
<script module="utils" lang="wxs">里的逻辑在uni-app中通常不兼容。需要将其功能用Vue的computed或methods重写。
模板 (Template) 与样式 (CSS) 调整
-
组件路径检查:检查自定义组件和第三方UI库(如vant)的路径是否正确,官方文档说明这类组件通常需要手动调整。
-
单位转换 :CSS中的
px可能需要按设计稿比例转换为rpx,以确保在不同设备上的显示效果。 -
盒模型调整:注意小程序的默认盒模型(content-box)和uni-app的默认盒模型(border-box)可能不同,按需调整。
三、转换后的验证与调试
修复完成后,务必进行全面测试。
-
运行到微信开发者工具 :在HBuilderX中,点击菜单栏
运行->运行到小程序模拟器->微信开发者工具。工具会自动唤起微信开发者工具并打开项目。 -
处理API不兼容报错 :在控制台排查报错信息。例如,
wx.showShareMenu()在App端不支持,或wx.navigateToMiniProgram()需要替换为plus.share.launchMiniProgram等。 -
回归测试所有功能:重点测试用户登录、网络请求、数据渲染、页面跳转和分享等核心业务流程。