背景
在一次日常监控告警中,发行了一个小程序上报的异常,这个错误是有行号和列号信息,但我尝试通过sourcemap 无法映射到正确的位置。
出现这个问题的原因是微信会对Taro编译后的代码进行再次编译,生成新的代码。我们可以再上传代码时上传Taro build产生的sourcemap,微信会基于这份sourcemap和编译后的代码再次进行打包,生成最终代码和微信的sourcemap。
Taro编译改造
首先在Taro配置中开启sourcemap。
- config/prod.js
module.exports = {
env: {
NODE_ENV: '"production"',
},
defineConstants: {},
mini: {
enableSourceMap: true,
sourceMapType: 'source-map',
}
}
sourcemap拉取
微信开放平台拉取sourcemap需要付费,但是可以使用miniprogram-ci免费拉取sourcemap。
npx miniprogram-ci get-dev-source-map \
--pp ./ \
--pkp 【密钥相对路径】 \
--appid 【你的APPID】 \
-r 1 --source-map-save-path ./sourcemap.zip