uni-app 在 vue-cli 创建的项目中,支付宝小程序内报错

uni-app 在 vue-cli 创建的项目中,支付宝小程序内报错

开发环境 版本号 项目创建方式
Windows 10 CLI

操作步骤:

  • 使用官网上的vue-cli教程新建的vue 2 +ts 项目

预期结果:

  • 成功编译到支付宝

实际结果:

8d9a109c-3d5c-40cb-9435-c3c0b3462258:1 TypeError: Function(...) is not a function  
    at Object../common/vendor.js (vendor.js:11873)  
    at __webpack_require__ (runtime.js:92)  
    at Object../common/vendor.js (vendor.js:11112)  
    at __webpack_require__ (runtime.js:92)  
    at Object.<anonymous> (vendor.js:19442)  
    at Object.<anonymous> (vendor.js:19529)  
    at __webpack_require__ (runtime.js:92)  
    at Object.<anonymous> (mp-html.js:40)  
    at Object._ (mp-html.js:292)  
    at __webpack_require__ (runtime.js:92)  

af-appx.worker.min.js:26 Error: page 'pages/index/index' not found!  
    at kn (af-appx.worker.min.js:26)  
    at Cr.Gn [as newPage] (af-appx.worker.min.js:26)  
    at af-appx.worker.min.js:26

bug描述:

8d9a109c-3d5c-40cb-9435-c3c0b3462258:1 TypeError: Function(...) is not a function
at Object../common/vendor.js (vendor.js:11873)
at webpack_require (runtime.js:92)
at Object../common/vendor.js (vendor.js:11112)
at webpack_require (runtime.js:92)
at Object. (vendor.js:19442)
at Object. (vendor.js:19529)
at webpack_require (runtime.js:92)
at Object. (mp-html.js:40)
at Object. (mp-html.js:292)
at webpack_require (runtime.js:92)

// problems, please detail your unique predicament in a GitHub issue.
if (typeof globalThis === "object") {
globalThis.regeneratorRuntime = runtime;
} else {
Function("r", "regeneratorRuntime = r")(runtime);
}
}

去安装了最新版本的 `regenerator-runtime` 无效

微信小程序没有这个问题

支付宝小程序一编译,就是 page not found  

参考了 https://github.com/dcloudio/uni-app/issues/1932  

和 https://ask.dcloud.net.cn/question/101714  

没用,我是用 vue-cli 的

更多关于uni-app 在 vue-cli 创建的项目中,支付宝小程序内报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 在 vue-cli 创建的项目中,支付宝小程序内报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据你提供的错误信息,这个问题通常是由于支付宝小程序环境与某些依赖库的兼容性问题导致的。

从错误堆栈来看,核心问题出现在 regeneratorRuntime 的初始化上。虽然你已尝试安装最新版 regenerator-runtime,但问题依然存在。这主要是因为支付宝小程序环境对某些 ES6+ 特性的支持与微信小程序存在差异。

解决方案:

  1. 检查并锁定 @babel/runtime 版本: 这个问题通常与 @babel/runtime 的版本有关。尝试在 package.json 中锁定一个较旧的稳定版本,例如:

    "@babel/runtime": "^7.12.0"
    

    然后删除 node_modulespackage-lock.json(或 yarn.lock),重新运行 npm installyarn install

  2. 检查 mp-html 组件: 错误堆栈中提到了 mp-html.js,如果你在项目中使用了 mp-html 富文本组件,请确保其版本与当前 uni-app 项目兼容。可以尝试暂时移除该组件,看是否仍报错,以定位问题。

  3. 配置 babel.config.js: 在项目根目录的 babel.config.js 中,确保已包含必要的配置以兼容支付宝小程序。参考以下配置:

    module.exports = {
      presets: [
        ['@vue/app', {
          useBuiltIns: 'entry'
        }]
      ]
    };
    
  4. 清理并重新编译: 删除 unpackage 目录(编译产物目录),然后重新运行编译命令:

    npm run dev:mp-alipay
回到顶部