lanker0
lanker0
  • 发布:2024-08-15 11:11
  • 更新:2024-11-06 15:35
  • 阅读:437

【报Bug】使用了onPageScroll onShareAppMessage onShareTimeline api的页面,生成的sourcemap没有包含源码,导致无法反解

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 14.4 (23E214)

第三方开发者工具版本号: stable 1.06.2405020

基础库版本号: 3.5.3

项目创建方式: CLI

CLI版本号: uni/3.0.0-4020420240722002 darwin-arm64 node-v20.16.0

操作步骤:
  1. 按官方文档,使用命令生成默认vue3+ts项目
npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project
  1. 配置vite.config.ts,支持生成sourcemap文件
import { defineConfig } from "vite";  
import uni from "@dcloudio/vite-plugin-uni";  

// https://vitejs.dev/config/  
export default defineConfig({  
  build: {  
    sourcemap: true, // 新增sourcemap配置  
  },  
  plugins: [uni()],  
});
  1. 执行编译命令uni build -p mp-weixin,得到正常的sourcemap(sources有源文件,sourcesContent有源文件内容)
{  
  "version": 3,  
  "file": "index.js",  
  "sources": [  
    "../../../../../src/pages/index/index.vue",  
    "../../../../../uniPage:/cGFnZXMvaW5kZXgvaW5kZXgudnVl"  
  ],  
  "sourcesContent": [  
    "<template>\r\n  <view class=\"content\">\r\n    <image class=\"logo\" src=\"/static/logo.png\"/>\r\n    <view class=\"text-area\">\r\n      <text class=\"title\">{{ title }}</text>\r\n    </view>\r\n  </view>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nconst title = ref('Hello')\r\n\r\n</script>\r\n\r\n<style>\r\n.content {\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  justify-content: center;\r\n}\r\n\r\n.logo {\r\n  height: 200rpx;\r\n  width: 200rpx;\r\n  margin-top: 200rpx;\r\n  margin-left: auto;\r\n  margin-right: auto;\r\n  margin-bottom: 50rpx;\r\n}\r\n\r\n.text-area {\r\n  display: flex;\r\n  justify-content: center;\r\n}\r\n\r\n.title {\r\n  font-size: 36rpx;\r\n  color: #8f8f94;\r\n}\r\n</style>\r\n",  
    "import MiniProgramPage from '/Users/lanweifeng/Project/uniapp/uni-vue3-demo/src/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"  
  ],  
  "names": [  
    "title",  
    "ref",  
    "wx",  
    "createPage",  
    "MiniProgramPage"  
  ],  
  "mappings": "wIAWM,MAAAA,EAAQC,MAAI,2DCVlBC,GAAGC,WAAWC"  
}
  1. 在pages/index/index.vue中使用onShareAppMessage函数
onShareAppMessage(() => {  
  console.log('使用了分享')  
})
  1. 重新执行编译命令uni build -p mp-weixin,得到的sourcemap丢失了源码信息,导致无法反解(sources和sourcesContent中没有源码)
{  
  "version": 3,  
  "file": "index.js",  
  "sources": [  
    "../../../../../uniPage:/cGFnZXMvaW5kZXgvaW5kZXgudnVl"  
  ],  
  "sourcesContent": [  
    "import MiniProgramPage from '/Users/lanweifeng/Project/uniapp/uni-vue3-demo/src/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"  
  ],  
  "names": [  
    "wx",  
    "createPage",  
    "MiniProgramPage"  
  ],  
  "mappings": "wdACAA,GAAGC,WAAWC"  
}

预期结果:

sourcemap中包含源码信息

实际结果:

sourcemap中源码信息丢失

bug描述:

使用了onPageScroll onShareAppMessage onShareTimeline api的页面,生成的sourcemap没有包含源码,导致无法反解

2024-08-15 11:11 负责人:DCloud_UNI_OttoJi 分享
已邀请:
lanker0

lanker0 (作者)

另外,直接使用 uni build -p mp-weixin --sourcemap 命令进行编译的话,生成的.sourcemap文件夹里的map文件,sourcesContent的值是null,也没有办法反解

{  
  "version": 3,  
  "file": "index.js",  
  "sources": [  
    "../../../../../uniPage:/cGFnZXMvaW5kZXgvaW5kZXgudnVl"  
  ],  
  "sourcesContent": null,  
  "names": [  
    "wx",  
    "createPage",  
    "MiniProgramPage"  
  ],  
  "mappings": "wdACAA,GAAGC,WAAWC"  
}
BFC

BFC

你好,临时解决方案:找到 node_modules/@dcloudio/uni-mp-vite/dist/plugins/runtimeHooks.js ,用附件的runtimeHooks.js 替换原本的runtimeHooks.js

  • lanker0 (作者)

    感谢回复~ 我试一下,同时期待正式修复

    2024-08-15 19:37

  • 1***@qq.com

    这个有官方修复的预期时间吗?

    2024-08-19 15:01

LGG233

LGG233 - others

有没有想过自己的问题,uniapp官方很难的好不好,工资涨没涨,有没有好好工作【dog】

BFC

BFC

你好,感谢反馈,已确认bug,已加分

  • lanker0 (作者)

    有没有啥临时解决方案呀,我们线上小程序异常还蛮多的,现在都看不了原始堆栈信息,对业务影响比较大。

    2024-08-15 19:10

  • BFC

    回复 lanker0: 已上传附件,替换一下 runtimeHook.js文件

    2024-08-15 19:27

1***@qq.com

1***@qq.com - 学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?

ces ces ceshi的方法发发发

1***@qq.com

1***@qq.com

还没修复吗?

要回复问题请先登录注册