1***@qq.com
1***@qq.com
  • 发布:2026-03-17 15:27
  • 更新:2026-03-17 15:29
  • 阅读:62

【报Bug】【hbuilderx 5.03】 编译微信小程序后,微信小程序开发者工具运行报错

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 15.3.2

HBuilderX类型: 正式

HBuilderX版本号: 5.03

第三方开发者工具版本号: 2.01.2510280

基础库版本号: 3.14.3

项目创建方式: HBuilderX

操作步骤:

看bug描述

预期结果:

微信小程序运行不报错

实际结果:

微信小程序开发者工具运行报错
module 'pages-sub-demo/common/vendor.js' is not defined, require args is '../../../../../pages-sub-demo/common/vendor.js'
Error: module 'pages-sub-demo/common/vendor.js' is not defined, require args is '../../../../../pages-sub-demo/common/vendor.js'

bug描述:

  1. 项目中某个子包引用了 node_module 组件库里的某个方法(如: useSelect)
  2. 该方法同时被组件库里的某个组件(如: SdpForm)引用
  3. 打包后 useSelect 方法被打进了子包
  4. 但是 SdpForm 组件是在主包里, 并且它引用的 useSelect 方法此时是从子包里引用的, 导致报错(主包引用某个子包的方法, 并且没有使用组件异步化方式)

总结:hbuilderx 5.x 版本会将子包引用的组件库中的方法打进子包中,导致组件库引用该方法报错(打包后组件库在主包,方法在子包)
hbuilder4.x 没有问题

2026-03-17 15:27 负责人:DCloud_UNI_JBB 分享
已邀请:
DCloud_UNI_JBB

DCloud_UNI_JBB

麻烦发个可复现demo

Ask小助手

Ask小助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

作为DCloud官方人员,对该bug反馈评审如下:

评审结论

该反馈基本有效,属于HBuilderX 5.x版本编译微信小程序时的分包依赖分析bug,但缺少必要的复现材料,无法直接定位修复。

详细分析

1. 内容完整性评估

缺失关键要素:

  • 无代码示例:未提供可运行的最小复现Demo,缺少pages.json分包配置、组件引用方式、node_modules中组件库的具体信息
  • 复现步骤不完整:仅标注"看bug描述",无具体操作流程(如组件库安装命令、页面配置方式等)
  • 组件库信息缺失:未说明具体使用的组件库名称及版本(如是否使用uni-ui等官方组件库)

有效信息:

  • 提供了明确的版本对比(4.x正常/5.x异常),符合回归bug特征
  • 错误信息完整:module 'pages-sub-demo/common/vendor.js' is not defined 明确表明主包错误引用了子包vendor.js
  • 平台环境信息完整(HBuilderX 5.03正式版、Mac系统、微信小程序)

2. Bug成立性判断

知识库依据:
在对话知识库中检索到类似报错记录:

微信开发者工具报错:app.js错误:error: module 'common/vendor.js' is not defined, require args is './common/vendor.js'

知识库中暂无HBuilderX 5.x版本分包编译vendor.js路径解析错误的明确记录,也未找到相关解决方案。

技术判断:
根据错误日志分析,该问题属于编译器依赖分析缺陷——当node_modules中的方法被同时引用时,5.x版本的依赖分析器错误地将共享方法标记为子包独享资源,导致主包组件引用时出现跨包引用错误。这违反了微信小程序分包规范(主包不应直接引用子包非异步化资源)。

3. 处理建议

需用户补充以下材料方可进入修复流程:

  1. 最小复现项目:上传一个包含主包组件和子包引用相同node_modules方法的精简Demo
  2. 组件库信息:提供package.json中相关依赖的名称和版本号
  3. 分包配置:提供pages.json中subPackages的具体配置片段
  4. 详细复现步骤
    • 创建项目的具体操作
    • 组件安装命令
    • 页面引用代码示例
    • 编译运行方式

临时规避方案(基于知识库推断):
在官方修复前,可尝试:

  • 在子包中避免直接引用node_modules中可能被主包共享的方法
  • 或通过preloadRule调整分包预加载策略(需验证)

后续跟进:
请补充上述材料后重新提交,我们将优先处理此类5.x版本回归问题。如能提供GitHub仓库链接或附件Demo,可加快排查效率。

内容为 AI 生成,仅供参考
DCloud_UNI_JBB

DCloud_UNI_JBB

可以试试这个方案 ,找到 /Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-vite/dist/plugin/build.js 替换为附件文件

  • 1***@qq.com (作者)

    替换后可以了,什么时候再发个版本

    2026-03-17 15:42

  • DCloud_UNI_JBB

    回复 1***@qq.com: 最近几天,发版就会带上

    2026-03-17 15:47

要回复问题请先登录注册