1***@163.com
1***@163.com
  • 发布:2026-05-27 09:53
  • 更新:2026-05-27 09:54
  • 阅读:74

windows系统发行飞书小程序,uni_modules部分丢失。

分类:HBuilderX

我和我的同事使用的是同一个git工程,代码完全一样,工程起初是同事创建的。

我的电脑: Windows 11 专业版

我同事的电脑:Mac

我们俩使用的HbuilderX版本均为5.07

同样在HbuilderX中依次点击 发行 -> 小程序(仅适用于uni-app),打包成功之后,对比打包产物:

D:\new_repo\mini_programe\approval\unpackage\dist\build\mp-lark\uni_modules

我的uni_modules下没有任何东西,就一个空目录

我同事的uni_modules下有uni-icons、uni-popup、uni-transition,而这三个插件已在项目中真实使用。

结果:我打包出来的产物发布到飞书小程序运行异常、同事打包出来的产物发布到飞书小程序运行正常。

请问问题出在哪里?

2026-05-27 09:53 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

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

根据你描述的情况,这个问题是典型的Windows 系统下路径大小写敏感导致的打包产物丢失问题。

飞书小程序的编译环境(以及多数基于 Linux 的 CI/CD 环境)对文件路径是严格区分大小写的。你的同事在 Mac 上开发,Mac 的文件系统默认也是区分大小写的,因此他的环境与你同事的打包环境一致,编译正常。而 Windows 系统(NTFS)默认不区分大小写,这就导致了问题。

问题根源分析:

你的项目中实际使用的组件路径,与你在 pages.json 或代码中引用的路径,在大小写上可能存在不一致。例如:

  • 组件实际目录:uni_modules/uni-icons
  • 你的引用:uni_modules/Uni-Icons

在 Windows 上,这不会报错,因为系统能找到文件。但当 HBuilderX 在发行打包(build)时,编译器(通常运行在 Node.js 环境)会严格按照你代码中的引用路径去匹配和拷贝文件。由于大小写不匹配,在编译优化阶段,这些组件被视为“未被引用”而没有被拷贝到最终的 dist/build/mp-lark 目录中。而在开发模式(dev)下,为了调试效率,可能采用了更宽松的匹配策略,或者没有进行代码 tree-shaking,所以运行正常。

解决方案:

请严格按照以下步骤检查和修复大小写问题:

  1. 彻底修正路径引用

    • 仔细检查你项目中所有页面、组件、easycom 配置(如果有)以及 pages.json 中,对 uni-iconsuni-popupuni-transition 这三个插件的引用路径。
    • 确保引用的路径字符串,与 uni_modules 目录下对应插件的文件夹名称,在大小写上完全一致。例如,如果文件夹是 uni-icons,那么引用必须是 @/uni_modules/uni-icons/...uni_modules/uni-icons/...,绝不能是 Uni-Icons 或其他任何变体。
  2. 清理编译缓存并重新打包

    • 删除项目根目录下的 unpackage 文件夹,以清除所有旧的编译缓存。
    • 在 HBuilderX 中,重新点击 发行 -> 小程序-飞书,进行打包。
  3. 验证修复

    • 打包完成后,再次检查 unpackage/dist/build/mp-lark/uni_modules 目录,确认 uni-icons 等文件夹是否已被正确包含。
    • 将新打包的产物上传至飞书小程序进行测试。

补充说明:

你可以在知识库的 ISSUE 系统中找到类似的历史问题报告,例如:4.85工具在发行小程序时uni-icons组件生效,运行开发模式没问题 ,这进一步印证了开发模式与正式发行模式在处理这类问题上的差异。这个问题并非 HBuilderX 的 Bug,而是跨平台开发中常见的环境差异,通过规范路径引用即可解决。

内容为 AI 生成,仅供参考

要回复问题请先登录注册