uni-app uni-cli打包小程序--sourcemap 参数无效,不会生产sourcemap

uni-app uni-cli打包小程序–sourcemap 参数无效,不会生产sourcemap

开发环境 版本号 项目创建方式
Windows win10 CLI
## 示例代码:

方案一:
```sh
pnpm build:mp-weixin --sourcemap

方案二:

把 --sourcemap加入到package命令中  
"build:mp-weixin": "uni build -p mp-weixin  --sourcemap"  
然后  
pnpm build:mp-weixin

操作步骤:

执行打包

预期结果:

dist\build\mp-weixin目录下有sourcemap

实际结果:

dist\build\mp-weixin目录下没有 我非常确定不是因为.文件被隐藏,也不是系统文件隐藏,我全打开了

bug描述:

无论使用

pnpm build:mp-weixin --sourcemap

还是把 --sourcemap加入到package命令中

"build:mp-weixin": "uni build -p mp-weixin  --sourcemap"

然后

pnpm build:mp-weixin

都能正常打包,但是build目录下没有.sourcemap文件夹


更多关于uni-app uni-cli打包小程序--sourcemap 参数无效,不会生产sourcemap的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

生产环境sourcemap有问题,目前不允许开启

更多关于uni-app uni-cli打包小程序--sourcemap 参数无效,不会生产sourcemap的实战教程也可以访问 https://www.itying.com/category-93-b0.html


后续有修复计划吗?找BUG有点麻烦啊

回复 h***@163.com: 暂无,你可以自己写个插件开启这个配置

该bug反馈内容基本完整但存在关键误解。BUG描述清晰说明了问题现象和尝试方法,但未提供HBuilderX具体版本号及uni-app CLI版本,且混淆了sourcemap生成路径。根据知识库,sourcemap文件应生成在/unpackage/dist/build/.sourcemap而非dist\build\mp-weixin目录下,且微信小程序平台有特殊处理流程:需先在微信开发者工具的"开发管理/运维中心/错误日志"中下载线上版本sourcemap,再解压到.sourcemap/mp-weixin/WEIXIN/目录(若只有__FULL__文件夹需重命名为__APP__)。用户实际结果属于正常现象,并非bug,而是对sourcemap机制理解有误。
知识库明确说明:

项目编译后sourcemap位于/unpackage/dist/build/.sourcemap [来源]
微信小程序需额外下载线上sourcemap用于错误解析 [来源]

建议用户检查/unpackage/dist/build/.sourcemap/mp-weixin路径,并参考微信小程序sourcemap处理指南。若仍需本地调试,可使用dev模式编译(sourcemap默认生成在/dist/dev/目录),但正式发布需遵循微信平台规范。 内容为 AI 生成,仅供参考

根据你的描述,这个问题确实存在。在 uni-app CLI 项目中,--sourcemap 参数在小程序平台(如 mp-weixin)上默认不会生成独立的 .map 文件,而是将 sourcemap 信息内联到生成的 .js 文件中。

原因分析:

  1. 设计差异:H5 平台打包时,--sourcemap 会生成独立的 .map 文件。但小程序平台的编译工具链(如微信开发者工具的 miniprogram 编译)处理方式不同,默认采用内联 sourcemap。
  2. 配置未生效--sourcemap 参数可能未正确传递给底层编译器(如 webpack)。

解决方案:

  1. 检查 uni-app 版本:确保使用较新版本的 @dcloudio/vue-cli-plugin-uni(建议 2.0+)。旧版本可能存在参数解析问题。
  2. 显式配置 webpack:在项目根目录创建 vue.config.js 文件,添加以下配置强制生成独立 sourcemap 文件:
    module.exports = {
        configureWebpack: {
            devtool: 'source-map' // 强制启用 sourcemap 生成
        }
    }
    
  3. 验证编译输出:执行打包后,检查 dist/build/mp-weixin 目录下的 .js 文件末尾是否包含 //# sourceMappingURL= 注释。如果存在,说明 sourcemap 已内联。
  4. 使用调试模式:尝试添加 --mode development 参数,某些情况下开发模式会启用完整 sourcemap:
    uni build -p mp-weixin --sourcemap --mode development
回到顶部