Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

miniprogram-to-uniapp

zhangdaren623Apache License 2.02.2.6TypeScript support: included

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

weixin, qq, toutiao, alipay, baidu, miniprogram, uni-app, transformation, uniCloud, cloud

readme

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

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

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

工具同时支持 Npm 安装 和 HbuilderX 插件(不依赖环境) 两种形式安装,安装方式如下:

Npm 安装

$ npm install miniprogram-to-uniapp -g

使用方法

Usage: wtu [options]

Options:

  -V, --version          output the version number [版本信息]
  -i, --input <target>   the input path for weixin miniprogram project [输入目录]
  -h, --help             output usage information [帮助信息]
  -c, --cli              the type of output project is vue-cli, which default value is false [是否转换为vue-cli项目,默认false]
  -m, --merge            merge wxss file into vue file, which default value is false [是否合并wxss到vue文件,默认false]
  -t, --template         transform template and include to component, which default value is false [转换template和include为单独组件,默认false]

示例:

默认转换:
$ wtu -i "./miniprogram-project"

注:"./miniprogram-project" 是要转换的小程序项目目录,如路径中有空格应该用引号引起来。

将 wxss 合并入 vue 文件:
$ wtu -i "./miniprogram-project" -m
转换项目为 vue-cli 项目:
$ wtu -i "./miniprogram-project" -c
将 template 里面的 import/template 和 include 标签转换为单独组件(实验性):
$ wtu -i "./miniprogram-project" -t

待命令行运行结束,会在小程序项目的同级目录有以 小程序项目名 + "_uni" 或 小程序目录名 + "_uni-cli" 目录,即是转换好的 uni-app 项目,转换好后,请使用 HBuilderX 导入并运行。

HbuilderX 插件安装

请参考项目:【HBuilder X 插件】 转换各种小程序为 uni-app 项目 进行食用。

说明文档

关于本工具转换原理及常见问题,请见:miniprogram-to-uniapp文档

问题答疑

对于使用有疑问或建议,欢迎加入 QQ 群进行指导和交流。

交流 QQ 群:

1 群:780359397 小程序转uni-app讨论群 (已满)

2 群:361784059 小程序转uni-app研究二群 (已满)

3 群:603659851 小程序转uni-app研究三群 (已满)

4 群:555691239 小程序转uni-app研究四群

参考资料

  1. GoGoCode 工具主要转换逻辑依赖 GoGoCode 构建
  2. 工具使用mp-html替换 wxParse
  3. 工具使用全兼容官方 picker mode=region 城市选择器替换 <picker mode="region"></picker>
  4. [AST 实战]从零开始写一个 wepy 转 VUE 的工具
  5. https://astexplorer.net/ AST 可视化工具
  6. Babylon-AST 初探-代码生成(Create) 系列文章
  7. Babel 插件手册 中文版 Babel 插件手册
  8. Babel 官网 有问题直接阅读官方文档哈
  9. 微信小程序转换 uni-app 详细指南 补充了我一些未考虑到的规则。

最后

如果觉得帮助到你的话,可以支持一下作者,请作者喝杯咖啡哈~

这样会更有动力更新哈~~

非常感谢~~

微信支付 支付宝支付

LICENSE

This repo is released under the Apache License 2.0.

changelog

v2.4.2(2023-05-14)

  1. A editable 插件支持修改文字颜色 详细
  2. F 修复了 svg 中有 style 不生效的问题 详细
  3. F 修复了使用旧版编译器可能报错 Bad attr nodes 的问题 详细
  4. F 修复了 app 端可能出现无法读取 lazyLoad 的问题 详细
  5. F 修复了 editable 插件在点击换图时未拼接 domain 的问题 详细 by @TwoKe945
  6. F 修复了 latex 插件部分情况下不显示的问题 详细
  7. F 修复了 editable 插件点击音视频时其他标签框不消失的问题

    v2.4.1(2022-12-25)

  8. F 修复了没有图片时 ready 事件可能不触发的问题
  9. F 修复了加载过程中可能出现 Root label not found 错误的问题 详细
  10. F 修复了 audio 插件退出页面可能会报错的问题 详细
  11. F 修复了 vue3 运行到 appHBuilder X 3.6.10 以上报错的问题 详细
  12. F 修复了 nvue 端链接中包含 %22 时可能无法显示的问题
  13. F 修复了 vue3 使用 highlight 插件可能报错的问题

    v2.4.0(2022-08-27)

  14. A 增加了 setPlaybackRateapi,可以设置音视频的播放速率 详细
  15. A 示例小程序代码开源 详细
  16. U 优化 ready 事件触发时机,未设置懒加载的情况下基本可以准确触发 详细
  17. U highlight 插件在编辑状态下不进行高亮处理,便于编辑
  18. F 修复了 flex 布局下图片大小可能不正确的问题
  19. F 修复了 selectable 属性没有设置 force 也可能出现渲染异常的问题
  20. F 修复了表格中的图片大小可能不正确的问题 详细
  21. F 修复了含有合并单元格的表格可能无法设置竖直对齐的问题
  22. F 修复了 editable 插件在 scroll-view 中使用时工具条位置可能不正确的问题
  23. F 修复了 vue3 使用 search 插件可能导致错误换行的问题 详细

    v2.3.2(2022-08-13)

  24. A 增加 latex 插件,可以渲染数学公式 详细 by @Zeng-J
  25. U 优化根节点下有很多标签的长内容渲染速度
  26. U highlight 插件适配 lang-xxx 格式
  27. F 修复了 table 标签设置 border 属性后可能无法修改边框样式的问题 详细 by @zouxingjie
  28. F 修复了 editable 插件输入连续空格无效的问题
  29. F 修复了 vue3 图片设置 inline 会报错的问题 详细
  30. F 修复了 vue3 使用 table 可能报错的问题

    v2.3.1(2022-05-20)

  31. U app 端支持使用本地图片
  32. U 优化了微信小程序 selectable 属性在 ios 端的处理 详细
  33. F 修复了 editable 插件不在顶部时 tooltip 位置可能错误的问题 详细
  34. F 修复了 vue3 运行到微信小程序可能报错丢失内容的问题 详细
  35. F 修复了 vue3 部分标签可能被错误换行的问题
  36. F 修复了 editable 插件 app 端插入视频无法预览的问题

    v2.3.0(2022-04-01)

  37. A 增加了 play 事件,音视频播放时触发,可用于与页面其他音视频进行互斥播放 详细
  38. U show-img-menu 属性支持控制预览时是否长按弹出菜单
  39. U 优化 wxs 处理,提高渲染性能 详细
  40. U video 标签支持 object-fit 属性
  41. U 增加支持一些常用实体编码 详细
  42. F 修复了图片仅设置高度可能不显示的问题 详细
  43. F 修复了 video 标签高度设置为 auto 不显示的问题 详细
  44. F 修复了使用 grid 布局时可能样式错误的问题 详细
  45. F 修复了含有合并单元格的表格部分情况下显示异常的问题 详细
  46. F 修复了 editable 插件连续插入内容时顺序不正确的问题
  47. F 修复了 uni-appvue3 使用 audio 插件报错的问题
  48. F 修复了 uni-apphighlight 插件使用自定义的 prism.min.js 报错的问题 详细

    v2.2.2(2022-02-26)

  49. A 增加了 pauseMediaapi,可用于暂停播放音视频 详细
  50. U 优化了长内容的加载速度
  51. U 适配 vue3 #389#398 by @zhouhuafei#400
  52. F 修复了小程序端图片高度设置为百分比时可能不显示的问题
  53. F 修复了 highlight 插件部分情况下可能显示不完整的问题 详细

    v2.2.1(2021-12-24)

  54. A editable 插件增加上下移动标签功能
  55. U editable 插件支持在文本中间光标处插入内容
  56. F 修复了 nvue 端设置 margin 后可能导致高度不正确的问题
  57. F 修复了 highlight 插件使用压缩版的 prism.css 可能导致背景失效的问题 详细
  58. F 修复了编辑状态下使用 emoji 插件内容为空时可能报错的问题 详细
  59. F 修复了使用 editable 插件后将 selectable 属性设置为 force 不生效的问题

    v2.2.0(2021-10-12)

  60. A 增加 customElements 配置项,便于添加自定义功能性标签 详细
  61. A editable 插件增加切换音视频自动播放状态的功能 详细 by @leeseett
  62. A editable 插件删除媒体标签时触发 remove 事件,便于删除已上传的文件
  63. U editable 插件 insertImg 方法支持同时插入多张图片 详细
  64. U editable 插入图片和音视频时支持拼接 domian 主域名
  65. F 修复了内部链接参数中包含 :// 时被认为是外部链接的问题 详细
  66. F 修复了部分 svg 标签名或属性名大小写不正确时不生效的问题 详细
  67. F 修复了 nvue 页面运行到非 app 平台时可能样式错误的问题

    v2.1.5(2021-08-13)

  68. A 增加支持标签的 dir 属性
  69. F 修复了 ruby 标签文字与拼音没有居中对齐的问题 详细
  70. F 修复了音视频标签内有 a 标签时可能无法播放的问题
  71. F 修复了 externStyle 中的 class 名包含下划线或数字时可能失效的问题 详细
  72. F 修复了 h5 端引入 externStyle 可能不生效的问题 详细

    v2.1.4(2021-07-14)

  73. F 修复了 rt 标签无法设置样式的问题 详细
  74. F 修复了表格中有单元格同时合并行和列时可能显示不正确的问题
  75. F 修复了 app 端无法关闭图片长按菜单的问题 详细
  76. F 修复了 editable 插件只能添加图片链接不能修改的问题 详细 by @leeseett

    v2.1.3(2021-06-12)

  77. A editable 插件增加 insertTable 方法
  78. U editable 插件支持编辑表格中的空白单元格 详细
  79. F 修复了 externStyle 中使用伪类可能失效的问题 详细
  80. F 修复了多个组件同时使用时 tag-style 属性时可能互相影响的问题 详细 by @woodguoyu
  81. F 修复了包含 linearGradientsvg 可能无法显示的问题
  82. F 修复了编译到头条小程序时可能报错的问题
  83. F 修复了 nvue 端不触发 click 事件的问题
  84. F 修复了 editable 插件尾部插入时无法撤销的问题
  85. F 修复了 editable 插件的 insertHtml 方法只能在末尾插入的问题
  86. F 修复了 editable 插件插入音频不显示的问题

    v2.1.2(2021-04-24)

  87. A 增加了 img-cache 插件,可以在 app 端缓存图片 详细 by @PentaTea
  88. U 支持通过 container-style 属性设置 white-space 来保留连续空格和换行符 详细
  89. U 代码风格符合 standard 标准
  90. U editable 插件编辑状态下支持预览视频 详细
  91. F 修复了 svg 标签内嵌 svg 时无法显示的问题
  92. F 修复了编译到支付宝和头条小程序时部分区域不可复制的问题 详细

    v2.1.1(2021-04-09)

  93. 修复了对 p 标签设置 tag-style 可能不生效的问题
  94. 修复了 svg 标签中的文本无法显示的问题
  95. 修复了使用 editable 插件编辑表格时可能报错的问题
  96. 修复了使用 highlight 插件运行到头条小程序时可能没有样式的问题 详细
  97. 修复了使用 editable 插件 editable 属性为 false 时会报错的问题 详细
  98. 修复了 style 插件连续子选择器失效的问题
  99. 修复了 editable 插件无法修改图片和字体大小的问题

    v2.1.0.2(2021-03-21)

    修复了 nvue 端使用可能报错的问题

    v2.1.0(2021-03-20)

  100. A 增加了 container-style 属性 详细
  101. A 增加支持 strike 标签
  102. A editable 插件增加 placeholder 属性 详细
  103. A editable 插件增加 insertHtml 方法 详细
  104. U 外部样式支持标签名选择器 详细
  105. F 修复了 nvue 端部分情况下可能不显示的问题

    v2.0.5(2021-03-12)

  106. U linktap 事件增加返回内部文本内容 innerText 详细
  107. U selectable 属性设置为 force 时能够在微信 iOS 端生效(文本块会变成 inline-block详细
  108. F 修复了部分情况下竖向无法滚动的问题 详细
  109. F 修复了多次修改富文本数据时部分内容可能不显示的问题
  110. F 修复了 腾讯视频 插件可能无法播放的问题 详细
  111. F 修复了 highlight 插件没有设置高亮语言时没有应用默认样式的问题 详细 by @fuzui