uni-app小程序打包后无法通过sourceMap还原

发布于 1周前 作者 ionicwang 来自 Uni-App

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  |

3 回复

错误详情: 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.jsmanifest.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 buildyarn 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 未被禁用
        }),
      ],
    },
  },
};
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!