[微信小程序] uni-app 打包的微信组件如何在taro 中使用

187 阅读1分钟

背景:写了一个UI工具,因为自己的项目是uni-app写的,通过uni-app的插件模式编译后形成微信组件,以子包形式提供给其他团队使用

表现:

  • 首页正常,一旦放开 ui 工具的展示,后续进入子包页面就会空白
  • 控制台报错,无法找到对应的文件 webpackJsonp

排查:

  1. 对比了taro与 uni-app 的构建产物,对应的运行时内都是由 webpackJsonp 对子包文件进行引入;
  2. error 是在uni 工具开启后异常,定位到是由uni-app的文件加载覆盖了原有taro的文件引入
  3. uni-app 对wx 进行了重写,注释/补充原有 webpackJsonp 的引入

解决:

  1.  在 initWx 函数块内补充 newWx.webpackJsonp = oldWx.webpackJsonp || []
  2. 通过patch-package 在构建uni-app产物时使用修改后的dcloud/uni-app 进行构建

done!