From e861e6989566e0220f9e12cd44646509031ccf13 Mon Sep 17 00:00:00 2001 From: DCloud_LXH <283700113@qq.com> Date: Wed, 27 Jul 2022 14:13:55 +0800 Subject: [PATCH] docs: sourcemap --- docs/uni-stat-v2.md | 96 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/docs/uni-stat-v2.md b/docs/uni-stat-v2.md index 5ab9ff116..bc16cac3d 100644 --- a/docs/uni-stat-v2.md +++ b/docs/uni-stat-v2.md @@ -355,6 +355,102 @@ uni统计新增的文件主要包括: ![关联前后台数据](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/14744bf3-c88e-4408-b2fa-0ecf0dcf4fe1.png) +### 错误解析 @sourcemap-parse-error + +> 此功能只支持 web平台、App平台、微信小程序平台 + +为方便开发者使用 sourceMap 文件定位代码问题,增加在统计中使用 sourceMap 错误解析功能。 + +#### 使用环境 + +1. 使用腾讯云服务空间,不支持阿里云服务空间 +2. HBuiderX 3.5.3+ +3. uni-admin 1.9.4+ +4. 不支持 IE + +#### 生成 sourceMap@create-sourcemap + +- 在 HBuiderX 中生成 sourceMap 文件 + - web 平台在`发行-> 网站`时,勾选 `生成 sourceMap` 选项。 + + ![web 平台生成 sourceMap](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/57724126-e970-48f5-bcbf-0dde4b713542.jpg) + - App 平台在`发行 -> 原生App-云打包`时,勾选 `生成 sourceMap` 选项。 + + ![app 平台生成 sourceMap](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/db7fd53a-7d8a-4e50-977a-552f40e82600.jpg) + - 微信小程序平台在`发行 -> 小程序-微信`时,勾选 `生成 sourceMap` 选项。 + + ![微信小程序平台生成 sourceMap](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/f73bed9a-7b9d-4ab2-b080-ea6571942fdc.jpg) + +- cli 项目生成 sourceMap 文件 + - vue 2 + ```sh + yarn build:h5 --sourcemap + + yarn build:app-plus --sourcemap + + yarn build:mp-weixin --sourcemap + ``` + - vue 3 + ```sh + yarn build:h5 --sourcemap + + yarn build:app --sourcemap + + yarn build:mp-weixin --sourcemap + ``` + +1. 项目编译完成后,可在 `/unpackage/dist/build/.sourcemap` 中查看到生成的各平台的 sourceMap 文件。 + + ![生成的 sourceMap 路径](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/52e1a71d-a6f2-4458-9213-186dd78684de.jpg) + +3. 由于微信小程序平台上传发布后,会再压缩打包一次,所以需要额外一个步骤: + 1. 在[微信公众平台](https://mp.weixin.qq.com/)的`开发管理/运维中心/错误日志`中下载线上版本 sourceMap 文件 + 2. 将下载好的 sourceMap 文件解压到所生成的 sourcemap 文件夹中: `/unpackage/dist/build/.sourcemap/mp-weixin/__WEIXIN__/`(__WEIXIN__为新建的目录,解析错误时会根据这个名字查找) + + ![微信 download sourceMap](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-a90b5f95-90ba-4d30-a6a7-cd4d057327db/2e4d0e4f-5be6-4a72-adf0-697a576dd3fa.png) + + **注意事项** + + 1. 如果下载的 sourceMap 文件中,只有 `__FULL__` 文件夹,请改名为 `__APP__` + 2. 只支持 `发行模式` 生成的 sourceMap 文件解析 + +#### 上传 sourceMap@upload-sourcemap + +1. 在 `uni-admin 项目/pages/uni-stat/error/js/js.vue` 页面中搜索 `cloudSpaceId` 补充腾讯云服务空间ID信息 + + ![cloudSpaceId](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/85a05c7a-9523-446e-8c49-3bf40e8a2636.jpg) + +2. 将 uni-admin 项目运行到浏览器中,在 `uni 统计 / 错误统计 / js报错` 页面,错误信息列表表格的右上角有 `上传 sourceMap` 按钮。点击后展示如下: + + ![上传 sourceMap](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-a90b5f95-90ba-4d30-a6a7-cd4d057327db/50878ced-c415-4d8d-923d-f3127e4a1add.png) + +1. 上传请前请填写完整信息:`应用`、`平台`、`版本` +2. 点击 `选择文件并上传` 按钮,弹出 `选择文件夹` 框后,请选中编译的对应该平台版本的 sourceMap。如:**项目根目录/unpackage/dist/build/.sourcemap/h5**,选中 `h5` 目录后点击上传。如果中途上传失败,在不刷新页面的情况下,重新选择文件夹上传可以跳过已上传文件。 +3. 文件夹内容会上传至 `云存储/__UNI__/uni-stat/sourcemap/应用 appId/平台(如:web、mp-weixin、ios)/版本/` 目录下 + +**注意事项** +1. 云存储需要配置权限:`所有用户可读` +2. 如果出现跨域需要在 `跨域配置` 中绑定安全域名 +3. 上传失败可能会有如下原因: + 1. 如果文件名称、文件夹名称带 `ad` 或者广告类的字段,请关闭浏览器广告拦截扩展再上传 + 2. 如果云存储中该目录已有同名文件,也可能会上传失败。所以在再次上传相同平台,相同版本的 sourceMap 文件前请将云存储中对应目录 (如:`云存储/__UNI__/uni-stat/sourcemap/应用 appId/平台(如:web、mp-weixin、ios)/版本/`) 删除 + +#### 解析错误@parse-error + +在 `uni 统计 / 错误统计 / js报错` 页面,错误信息列表表格中,点击表格行中右侧 `详情按钮` 即可在弹窗中查看解析后错误信息。 + +**示例** + +原始错误信息: + +![原始错误:](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/1a8f0fcc-9bbf-4563-9c33-ebe4c7e14800.jpg) + +解析后的错误信息: + +![原始错误:](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/300b16e0-bfea-4dd5-ba95-e06dc1b75b51.jpg) + +- 解析错误是逐行解析,某一行解析失败会返回原错误信息 +- `runtime error` 分隔线下方为平台框架运行时错误栈信息,可以不用关心 ## 开源代码解读 -- GitLab