uni-app HBuilderX vue3.0 编译支付宝小程序存在bug

发布于 1周前 作者 nodeper 来自 Uni-App

uni-app HBuilderX vue3.0 编译支付宝小程序存在bug

开发环境 版本号 项目创建方式
PC Mac
14.1 (23B74)
HBuilderX 3.98

操作步骤:

  • 运行 -> 运行到小程序模拟器 -> 支付宝小程序开发工具

预期结果:

  • 编译运行正常

实际结果:

  • 不能正常运行,需要手动修改 vendor.jsgetCreateApp 方法才正常

bug描述:

HBuilderX vue3.0 编译支付宝小程序存在bug,支付宝开发工具下没看到报错信息,但模拟器一片空白。真机运行,会看到以下错误信息:

TypeError: Cannot read property 'onLaunch' of undefined
    at e.pushStack (appx/af-appx.worker.min.js:6:528879)
    at e.pushStack (appx/af-appx.worker.min.js:6:517748)
    at e.performPostNavigation (appx/af-appx.worker.min.js:6:536698)
    at e.onPageCreate (appx/af-appx.worker.min.js:6:530404)
    at e.onPageCreate (appx/af-appx.worker.min.js:6:518178)
    at e.createInstance (appx/af-appx.worker.min.js:6:506006)
    at appx/af-appx.worker.min.js:6:1185261
    at appx/af-appx.worker.min.js:6:1185065
    at s (appx/af-appx.worker.min.js:6:1185069)
    at appx/af-appx.worker.min.js:6:1185577

TypeError: Cannot read property 'onResume' of undefined
    at e.onAppResume (appx/af-appx.worker.min.js:6:533606)
    at e.onAppResume (appx/af-appx.worker.min.js:6:518274)
    at e.invokeEvent (appx/af-appx.worker.min.js:6:279766)
    at e.dispatchEvent (appx/af-appx.worker.min.js:6:63820)
    at t (appx/af-appx.worker.min.js:6:945753)
    at bu (appx/af-appx.worker.min.js:6:215189)
    at t.dispatchEvent (2021004109638679.hybrid.alipay-eco.com/index.worker.js:3:209842)
    at Object.i [as fn] (2021004109638679.hybrid.alipay-eco.com/index.worker.js:3:208724)
    at d (appx/v8.worker.js:1:911)
    at g (appx/v8.worker.js:1:2469)

需要自己手动修改 vendor.jsgetCreateApp 方法可以修改为:

function getCreateApp() {
  const method = "createApp";
  if (typeof my !== "undefined") {
    return my[method];
  } else if (typeof global !== "undefined") {
    return global[method];
  }
}

function getCreateApp() {
  const method = "createApp";
  if (typeof global !== "undefined" && typeof global[method] !== "undefined") {
    return global[method];
  } else if (typeof my !== "undefined" && typeof my[method] !== "undefined") {
    return my[method];
  }
}

5 回复

HBuilderX 4.0.2024012711-alpha 已修复。


提供下测试工程吧

支付宝开发工具新版本支持 global 和 globalThis,需要设置 “globalObjectMode”: “enable”

可以直接修改/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-vue/dist/vue.runtime.esm.js 和 /Applications/HBuilderX.app/Contents/HBuilderX/update/backup/diff/uniapp-cli-vite/backup/node_modules/@dcloudio/uni-mp-vue/dist/vue.runtime.esm.js 的 getCreateApp 方法,这样就不需要每次编译后修改 vendor.js 文件

感谢反馈,后续会修复。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!