uni-app小程序打包后无法通过sourceMap还原
uni-app小程序打包后无法通过sourceMap还原
操作步骤:
小程序通过云端打包后运行wgt,通过onerror抓取错误信息,无法通过对应的sourceMap进行还原
预期结果:
数据正确解析
实际结果:
无法正确解析
bug描述:
小程序通过云端打包后运行wgt,通过onerror抓取错误信息,无法通过对应的sourceMap进行还原
| 信息类别 | 信息内容 |
|----------------|------------|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC系统版本 | win11 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 3.8.7 |
| 手机系统 | Android |
| 手机系统版本 | Android 10 |
| 手机厂商 | 模拟器 |
| 手机机型 | pixel 2 |
| 页面类型 | vue |
| vue版本 | vue3 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
错误详情:
TypeError: Cannot read property ‘toSting’ of null
at Proxy.onReady (app-service.js:1427:11) at App.vue:19
在使用 uni-app 开发小程序时,打包后如果无法通过 sourceMap 还原代码,可能是以下几个原因导致的。你可以逐步排查并解决问题:
1. 确保 sourceMap 已生成
在 vue.config.js
或 manifest.json
中,确认 sourceMap 配置已开启。
// vue.config.js
module.exports = {
configureWebpack: {
devtool: 'source-map', // 确保 sourceMap 已启用
},
};
或者:
// manifest.json
{
"h5": {
"devtool": "source-map"
},
"mp-weixin": {
"devtool": "source-map"
}
}
2. 检查打包命令
确保打包时 sourceMap 没有被禁用。比如,在运行 npm run build
或 yarn build
时,检查是否有参数禁用了 sourceMap。
3. 小程序开发者工具设置
在小程序开发者工具中,确保开启了 sourceMap 支持:
- 打开开发者工具。
- 进入 设置 > 项目设置。
- 勾选 开启 sourceMap 支持。
4. 检查 sourceMap 文件是否存在
打包后,检查生成的 dist
目录下是否存在 .map
文件。如果不存在,说明 sourceMap 没有生成成功。
5. 确认 sourceMap 文件路径正确
sourceMap 文件通常与生成的 JS 文件在同一目录下,且文件名一致(如 index.js
对应 index.js.map
)。如果路径不正确,开发者工具可能无法加载 sourceMap。
6. uni-app 版本问题
某些 uni-app 版本可能存在 sourceMap 生成问题。尝试更新 uni-app 到最新版本:
npm install @dcloudio/uni-app@latest
7. 检查压缩工具配置
如果你使用了代码压缩工具(如 Terser),确保它没有禁用 sourceMap。例如:
// vue.config.js
module.exports = {
configureWebpack: {
optimization: {
minimizer: [
new TerserPlugin({
sourceMap: true, // 确保 sourceMap 未被禁用
}),
],
},
},
};