uni-app h5 项目运行到微信小程序报错 Maximum call stack size exceeded

uni-app h5 项目运行到微信小程序报错 Maximum call stack size exceeded

开发环境 版本号 项目创建方式
Mac M1 MacOS 26.1 HBuilderX

操作步骤

  • 运行到小程序

预期结果

  • 正常展示

实际结果

  • 出现以下报错
index.js?df3c:1581 RangeError: Maximum call stack size exceeded  
    at n (VM10248 WASubContext.js:1)  
    at n (VM10248 WASubContext.js:1)  
    at n (VM10248 WASubContext.js:1)  
    at n (VM10248 WASubContext.js:1)  
    at n (VM10248 WASubContext.js:1)  
    at n (VM10248 WASubContext.js:1)  
    at n (VM10248 WASubContext.js:1)  
    at n (VM10248 WASubContext.js:1)  
    at n (VM10248 WASubContext.js:1)  
    at n (VM10248 WASubContext.js:1)  
(env: macOS,mp,2.01.2510260; lib: 3.13.0)  
Component   @   index.js?df3c:1581  
createPage  @   index.js?df3c:2576  
(anonymous) @   main.js:6  
_   @   main.js:6  
__webpack_require__ @   runtime.js:164  
checkDeferredModules    @   runtime.js:103  
webpackJsonpCallback    @   runtime.js:80  
(anonymous) @   home.js:4
  • main.js 核心内容
import 'uni-pages';  
// [@ts-ignore](/user/ts-ignore)  
wx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;  
import Vue from 'vue'  
import Page from './pages/order_new/order_new.vue'  
createPage(Page)

更多关于uni-app h5 项目运行到微信小程序报错 Maximum call stack size exceeded的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

该bug反馈内容基本完整但关键信息缺失。BUG描述说明了H5正常而小程序报"Maximum call stack size exceeded"的问题,但未提供order_new.vue等核心页面代码、pages.json配置及package.json依赖信息,导致无法直接复现。复现步骤过于简略(仅"运行到小程序"),未说明具体操作流程和项目创建方式。分类信息中HBuilderX版本(4.87)和OS信息齐全,但缺少uni-app核心版本号和小程序具体平台类型(虽从错误堆栈可推断为微信)。
该bug成立,典型表现为代码中存在无限递归调用。根据知识库,H5与小程序环境差异可能导致:1) 使用了小程序不支持的特性(如v-html);2) 组件间存在循环引用;3) 第三方库在小程序环境不兼容。错误堆栈显示连续调用n函数,表明存在递归死循环。HBuilderX 4.87版本较新,排除已知框架缺陷,更可能是项目代码问题。
建议用户:1) 检查组件间是否存在循环引用;2) 确认是否误用H5专属API;3) 参考小程序体积优化方案进行分包;4) 更新至最新HBuilderX版本验证。需补充完整项目结构和问题页面代码才能进一步定位。 内容为 AI 生成,仅供参考

更多关于uni-app h5 项目运行到微信小程序报错 Maximum call stack size exceeded的实战教程也可以访问 https://www.itying.com/category-93-b0.html


createPage 哪里来的,如果不是 uniapp 内部的,找三方框架交流

看起来是 uniapp 的,下边回复附加了 home.js 文件

相关打包后的文件

请提供复现工程,并说明复现步骤

这个错误通常是由于递归调用或循环依赖导致的栈溢出。从你的代码和错误堆栈来看,问题出现在 createPage(Page) 这一行。

主要原因是:你在 main.js 中直接导入了页面组件并调用 createPage,这在小程序环境中会触发递归渲染。

解决方案:

  1. 移除 main.js 中的页面创建代码main.js 恢复为默认配置:

    import App from './App'
    import Vue from 'vue'
    Vue.config.productionTip = false
    App.mpType = 'app'
    const app = new Vue({
        ...App
    })
    app.$mount()
    
  2. 使用 pages.json 配置页面路由pages.json 中配置你的页面路由:

    {
        "pages": [
            {
                "path": "pages/order_new/order_new",
                "style": {
                    "navigationBarTitleText": "订单"
                }
            }
        ]
    }
回到顶部