微信小程序转头条小程序 处理wxs

575 阅读2分钟

背景

最近公司有计划开发飞书小程序,飞书小程序和头条小程序应该类似,所以需要做一重代码转换。 因为公司开发没用各类型的框架,所以需要自己转一遍。

调研

调研了不少方案,可行的方案有两种:

  1. taro, 先将微信小程序转换taro项目的小程序,在通过taro转换为头条小程序
  2. 通过头条小程序的搬家工具 wx-to-tt,可以将原生的微信小程序转换成头条小程序。

方案对比

  1. 性能对比,使用taro 需要转成taro的形式使用小程序,目前taro是用动态渲染页面的方式,性能上会有损耗,原生小程序在性能上会有优势。
  2. 使用头条自研工具转换的话,可以完全复用代码,只是修改了调用到的底层逻辑,后续有问题也方便排查。 最终选择方案为使用头条小程序的搬家工具转换微信小程序

遇到的问题

  1. wxs 文件没有转换为sjs
  2. wxml 内的wxs的js脚本被编译过,无法正常运行

处理方案

  1. 运行搬家脚本前,先将wxml文件内wxs标签内容先取出来并用一串占位符替换,记录映射关系,并将引用到的wxs文件路径后缀改为sjs
  2. 将wxs的文件后缀改为sjs,并将wxs文件内部引用到的外部wxs文件路径改为sjs后缀。
  3. 运行搬家脚本
  4. 搬家完成后,将取出来的wxs文件先将内部引用的wxs文件路径替换,再和占位符替换

流程图

处理wxs流程图

实现方法

使用的工具为:gulp + wx-to-tt 源码:github.com/aa875982361… 今晚更新源码