uni-app 开启统计后打包微信小程序运行报错(Cannot read property 'fullPath' of undefined)

uni-app 开启统计后打包微信小程序运行报错(Cannot read property ‘fullPath’ of undefined)

项目信息
产品分类 uniapp/小程序/微信
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 Windows 10 专业版 20H2
第三方开发者工具版本号 RC 1.05.2112141
基础库版本号 2.23.4
项目创建方式 CLI
CLI版本号 3.0.0-alpha-3031320220314002

操作步骤:

  • 使用 cli 创建 vue3 的 uni-app 项目
    npx degit dcloudio/uni-preset-vue#vite my-vue3-project
    
  • 进入并打开项目 my-vue3-project
    cd my-vue3-project  
    code .
    
  • 修改 manifest.json 中的相关配置,开启 uni 统计,填写 uniapp 及微信小程序的 appid
    "uniStatistics" : {  
      "enable" : true  
    }
    
  • 安装依赖
    npm i
    
  • 依赖安装成功后打包
    npm run build:mp-weixin
    
  • 打包成功后使用微信开发者工具运行小程序,或者使用真机预览
  • 点击右上角胶囊按钮隐藏小程序

预期结果:

  • 小程序运行正常无报错,能正常上报事件

实际结果:

  • 当触发小程序 onHide 隐藏,控制台报错 TypeError: Cannot read property 'fullPath' of undefined

bug描述:

使用 cli 创建 vue3 的 uni-app 项目,开启 uni 统计后,build 打包为微信小程序,使用微信开发者工具运行或真机运行小程序,点击胶囊按钮隐藏小程序,或其它方式触发小程序 onHide,即触发报错 TypeError: Cannot read property 'fullPath' of undefined ,如下图所示:

Image 1

Image 2


更多关于uni-app 开启统计后打包微信小程序运行报错(Cannot read property 'fullPath' of undefined)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

执行 npx @dcloudio/uvm 更新到最新版本试一下

更多关于uni-app 开启统计后打包微信小程序运行报错(Cannot read property 'fullPath' of undefined)的实战教程也可以访问 https://www.itying.com/category-93-b0.html


问题一样

兄die,npx @dcloudio/uvm 命令报错了,查看一下呗,报错信息如下: (node:18336) UnhandledPromiseRejectionWarning: Error: Invalid version: 3.0.0-alpha-3040620220419003 at getVue3 (D:\domli\demo\uni-test\my-vue3-project\node_modules[@dcloudio](/user/dcloudio)\uvm\lib\package.js:16:11) at processTicksAndRejections (internal/process/task_queues.js:93:5) at async get (D:\domli\demo\uni-test\my-vue3-project\node_modules[@dcloudio](/user/dcloudio)\uvm\lib\package.js:37:12) at async start (D:\domli\demo\uni-test\my-vue3-project\node_modules[@dcloudio](/user/dcloudio)\uvm\bin\index.js:17:16)

相同的问题

⸨⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⸩ ⠧ rollbackFailedOptional: verb npm-session ba3fdf0a4119dda2 npx: 64 安装成功,用时 16.766 秒 (node:2303) UnhandledPromiseRejectionWarning: Error: Invalid version: 3.0.0-alpha-3040720220422004 at getVue3 (/Users/zxb/.npm/_npx/2303/lib/node_modules/@dcloudio/uvm/lib/package.js:16:11) at processTicksAndRejections (internal/process/task_queues.js:95:5) at async get (/Users/zxb/.npm/_npx/2303/lib/node_modules/@dcloudio/uvm/lib/package.js:37:12) at async start (/Users/zxb/.npm/_npx/2303/lib/node_modules/@dcloudio/uvm/bin/index.js:17:16) (Use node --trace-warnings … to show where the warning was created)
同样的问题,兄弟,报错了,给查一下吧,这两天一直在 vue3 支持上踩坑啊~

相同的问题,请问解决了吗

在 uni-app 中开启统计后打包微信小程序运行报错 Cannot read property 'fullPath' of undefined,通常是因为在统计模块中某些路径处理逻辑出现了问题。以下是一些可能的解决方案和排查步骤:

1. 检查统计模块的配置

确保在 manifest.json 中配置的统计模块(如友盟统计、uni统计等)是正确的,并且相关的配置项没有缺失或错误。

{
  "app-plus": {
    "statistics": {
      "enable": true,
      "provider": "uni"
    }
  }
}

2. 检查页面路径处理逻辑

错误提示 Cannot read property 'fullPath' of undefined 表明在某个地方尝试访问 fullPath 属性时,对象是 undefined。可能是在统计模块中处理页面路径时,没有正确获取到当前的页面对象。

你可以在 pages.json 中检查是否有自定义的页面路径处理逻辑,或者在某些页面生命周期钩子中(如 onLoadonShow)是否有对页面路径的处理。

3. 更新 uni-app 和相关插件

确保你使用的是最新版本的 uni-app 和相关插件,旧版本可能存在一些已知的问题。

# 更新 uni-app
npm update @dcloudio/uni-app

# 更新 uni-stat
npm update @dcloudio/uni-stat

4. 检查微信小程序的环境

有时候微信小程序的环境可能会导致某些 API 行为不一致。你可以尝试在微信开发者工具中清除缓存,或者重新编译项目。

5. 调试统计模块

如果问题依然存在,可以尝试在统计模块的源码中增加调试信息,看看在哪个步骤出现了 undefined 的情况。你可以在 node_modules 中找到统计模块的源码,或者在 manifest.json 中禁用统计模块,看看问题是否依然存在。

6. 使用条件编译

如果问题只在微信小程序中出现,可以尝试使用条件编译来排除其他平台的影响。

// #ifdef MP-WEIXIN
// 微信小程序特定的代码
// #endif

7. 联系 uni-app 官方支持

如果以上方法都无法解决问题,建议联系 uni-app 官方支持或在 uni-app 社区中寻求帮助,提供详细的错误信息和复现步骤。

示例代码

以下是一个简单的示例,展示如何在 onLoad 生命周期中处理页面路径:

export default {
  onLoad(options) {
    // 获取当前页面路径
    const pages = getCurrentPages();
    const currentPage = pages[pages.length - 1];
    const fullPath = currentPage.route;

    console.log('当前页面路径:', fullPath);
  }
}
回到顶部