uni-app 小程序发行混合分包后代码包的组件路径引用错误

uni-app 小程序发行混合分包后代码包的组件路径引用错误

操作步骤:

  • 根据官方流程进行小程序发行混合分包即可复现

预期结果:

"usingComponents": {  
    "u-count-to": "../../node-modules/uview-ui/components/u-count-to/u-count-to",  
    "u-mask": "../../node-modules/uview-ui/components/u-mask/u-mask"  
}

实际结果:

"usingComponents": {  
    "u-count-to": "..\\..\\node-modules\\uview-ui\\components\\u-count-to\\u-count-to",  
    "u-mask": "..\\..\\node-modules\\uview-ui\\components\\u-mask\\u-mask"  
}

bug描述:

  • 小程序发行混合分包后代码包的组件路径引用错误,需要手动改路径

Image

项目信息
产品分类 uniapp/小程序/微信
PC开发环境操作系统 Windows
PC开发环境版本 window10
HBuilderX类型 正式
HBuilderX版本 3.1.16
第三方开发者工具版本 1.05.2105170
基础库版本 2.16.0
项目创建方式 HBuilderX

更多关于uni-app 小程序发行混合分包后代码包的组件路径引用错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

我也遇到这个问题了,这个还能手动解决, 可还有个问题,就不好搞了, 混合分包后,在u-view组件上绑定的事件失效了。比如说在u-button 上绑定点击事件,最后却解析成了 bind:click="__e" ,就无法监听到点击事件。 这就比较迷了。。。

更多关于uni-app 小程序发行混合分包后代码包的组件路径引用错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html


手动修改完之后,再次运行又还原了咋办

2021年9月了 这个问题还是没解决

此问题在新版已经修复

这是 uni-app 在 Windows 系统下发行混合分包时常见的路径分隔符问题。问题出现在编译过程中路径分隔符被错误地转换为了反斜杠(\),而小程序平台要求使用正斜杠(/)作为路径分隔符。

解决方案:

  1. 临时修复:手动将生成的 usingComponents 中的反斜杠改为正斜杠。

  2. 检查配置:确认 pages.json 中的分包配置是否正确,确保组件路径使用正斜杠:

    "subPackages": [
      {
        "root": "subpackage",
        "pages": [
          {
            "path": "index",
            "style": {
              "usingComponents": {
                "u-count-to": "../../node-modules/uview-ui/components/u-count-to/u-count-to"
              }
            }
          }
        ]
      }
    ]
    
  3. 更新工具:升级 HBuilderX 到最新版本,该问题在后续版本中可能已被修复。

  4. 构建脚本:如问题持续存在,可在发行后通过脚本自动替换路径分隔符:

    // 构建后处理脚本
    const fs = require('fs');
    const content = fs.readFileSync('dist/app.json', 'utf8');
    const fixed = content.replace(/\\\\/g, '/');
    fs.writeFileSync('dist/app.json', fixed);
回到顶部