Need help with miniprogram-to-uniapp?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

zhangdaren
622 Stars 120 Forks MIT License 103 Commits 23 Opened issues

Description

Try to transform Weixin miniprogram project to Uni-app project

Services available

!
?

Need anything else?

Contributors list

No Data

转换各种小程序为 uni-app 项目

支持转换微信、QQ、头条/抖音、支付宝/钉钉和百度等小程序转换到 uni-app 项目

输入小程序项目路径,即可输出 uni-app 项目。

安装(请在 CMD 或终端里直接输入即可安装,无须下载代码!!!)

$ npm install miniprogram-to-uniapp -g
  • 支持微信、QQ、头条/抖音、支付宝/钉钉和百度等小程序转换到 uni-app 项目
  • 支持有/无云开发的小程序项目转换为 uni-app 项目(cloudfunctions 目录将被忽略,uni-app 结合小程序云开发见:使用 uni-app 进行微信小程序云开发经验分享)
  • 支持解析 TypeScript 小程序项目
  • 支持解析使用 npm 模块的小程序项目
  • 支持解析 include 标签
  • 支持解析 template 标签
  • 支持解析 Behavior 文件为 mixins 文件
  • 合并使用 require 导入的 wxs 文件
  • setData() polyfill, setData 函数无须另外处理!
  • 搜索未在 data 声明,而直接在 setData()里使用的变量,并修复
  • 支持识别 App、Page、Component、VantComponent、Behavior 和纯 Javascript 文件的转换
  • 使用jyf-parser替换 wxParse(感谢网友 “爱瑞巴勒康忙北鼻” 的建议)
  • 将所有非 static 目录下资源文件移入 static 目录,并修复所有能修复到的路径
  • 对代码语法做了大量的兼容,如修复变量名与函数重名的情况等

不支持转换的功能及组件

  • 不支持转换反编译后的小程序项目
  • 不支持转换使用 uni-app 编译的小程序项目
  • 不支持转换使用 redux 开发的小程序(代表为:网易云信小程序 DEMO)
  • 不支持转换使用 wxpage 开发的小程序(https://github.com/tvfe/wxpage)
  • 不支持转换使用腾讯 omi 开发的小程序(https://github.com/Tencent/omi)
  • 不支持转换小程序抽象节点 componentGenerics
  • 不支持 component 里的 pageLifetimes 生命周期,请手动绕过
  • 不支持使用 js 系统关键字作为函数或变量名(如 default、import、return、switch 等)
  • 不支持以\$开头的变量名称,如
    Page({data:{$data:{name:"hello"}}})
    ,刚好\$data 是 vue 内置变量,so 不支持,需手动修复
  • 不支持以动态绑定的函数
    ,需手动修复
  • 更多,请参照miniprogram to uniapp 工具答疑

更新记录

v1.0.76(20201024)

  • [修复] 在 HBX 插件里对比路径异常,造成 App.vue 未生成的 bug

v1.0.75(20201023)

  • [更新] 增加 wtu 版本更新提示
  • [更新] jyf-parser 的版本为 2.16.0(2020-10-14)
  • [修复] 代码
    (function (t) { })()
    被转换为
    function (t) { }()
    的 bug
  • [修复] 代码
    var app = getApp()
    被替换为
    var app = getApp().globalData
    的 bug
  • [修复] app.js 里 globalData 的值为
    globalData: require("../abc.js")
    时解析出错的 bug
  • [修复] 代码
    import {SymbolIterator} from "./methods/symbol.iterator";
    被删除".iterator"的 bug
  • [提示] 检测到 wx-cropper 时,输出错误提示及日志
  • [提示] 遇到代码 in 作为 wx:for-index 时,输出错误提示及日志(示例代码:
    )

历史更新记录

感谢

  • 感谢转转大佬的文章:[AST 实战]从零开始写一个 wepy 转 VUE 的工具, 本项目基于此文章里面的代码开发,在此表示感谢~
  • 感谢网友[没有好名字了]给予帮助。
  • 感谢 DCloud 官方大佬[安静]给予帮助。
  • 感谢网友[☆_☆]给予帮助。
  • 感谢网友[☆_☆]提供增强版 setData。
  • 感谢官方大佬 DCloud_heavensoft 的文章:微信小程序转换 uni-app 详细指南,补充了我一些未考虑到的规则。
  • 工具使用jyf-parser替换 wxParse,表示感谢~
  • 感谢为本项目提供建议以及帮助的热心网友们~~

参考资料

  1. [AST 实战]从零开始写一个 wepy 转 VUE 的工具 此文获益良多
  2. https://astexplorer.net/ AST 可视化工具
  3. Babylon-AST 初探-代码生成(Create) 系列文章(作者还是个程序媛噢~)
  4. Babel 插件手册 中文版 Babel 插件手册
  5. Babel 官网 有问题直接阅读官方文档哈
  6. 微信小程序转换 uni-app 详细指南 补充了我一些未考虑到的规则。
  7. 更新 babel 版本,命令:npx babel-upgrade --write

最后

如果觉得帮助到你的话,可以支持一下作者,请作者喝杯咖啡哈~
这样会更有动力更新哈~~
非常感谢~~

微信支付支付宝支付

LICENSE

This repo is released under the MIT.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.