h***@sina.com
h***@sina.com
  • 发布:2026-08-03 16:22
  • 更新:2026-08-03 16:23
  • 阅读:36

【报Bug】上传云函数引导到CLI,但CLI上传报错

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 5.15

手机系统: 全部

手机厂商: 华为

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

1

操作步骤:

复现步骤

  1. 项目 uni_modules/<插件>/uniCloud/cloudfunctions/<云函数>/package.jsoncloudfunction-config"runtime": "Nodejs16"
  2. 执行:
    cli cloud functions --upload cloudfunction --prj 项目名 --provider aliyun --name <云函数名> --unimod <插件名>  
  3. 报错 Cannot read properties of undefined (reading 'toLowerCase')

错误堆栈

TypeError: Cannot read properties of undefined (reading 'toLowerCase')  
    at D:\HBuilderX2\HBuilderX\plugins\unicloud\manager\index.js:1:137141  
    at a (D:\HBuilderX2\HBuilderX\plugins\unicloud\manager\index.js:1:113511)  
    at yx.<anonymous> (D:\HBuilderX2\HBuilderX\plugins\unicloud\manager\index.js:1:1380186)  
    at a (D:\HBuilderX2\HBuilderX\plugins\unicloud\manager\index.js:1:1362214)  
    at yx.uploadCloudFunction (D:\HBuilderX2\HBuilderX\plugins\unicloud\manager\index.js:1:1380660)

Hr 返回字符串,但调用处却将其当作对象访问 .runtime 属性,导致 undefined.toLowerCase() 抛错。

预期结果:

期望行为

  • runtime 字段的云函数也应能正常上传;或
  • 修正为 i.toLowerCase()(对字符串取小写),并正确兼容运行时名匹配。

实际结果:

11

bug描述:

HBuilderX 5.15 CLI 上传 uni_modules 云对象报 toLowerCase TypeError

环境

  • HBuilderX 版本:5.15.2026070915
  • 系统:Windows
  • 云服务商:阿里云 uniCloud

问题描述

通过 CLI 上传 uni_modules 插件内的云函数/云对象时,只要该云函数的 package.jsoncloudfunction-config 中配置了 runtime 字段(如 "runtime": "Nodejs16"),上传即报错:

-1:cloud functions:Cannot read properties of undefined (reading 'toLowerCase')

注意:

  • 上传普通云函数(无 runtime 字段)正常
  • 上传 uni_modules 插件内 common(公共模块)正常
  • 上传 uni_modules 插件内 db schema 正常
  • 唯独 uni_modules 插件内 cloudfunction(云函数/云对象)且带 runtime 字段时必现
  • 临时绕过方案

    上传前临时移除 package.jsoncloudfunction-config.runtime 字段,上传成功后再恢复。

2026-08-03 16:22 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

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

感谢您的反馈。这是一个非常高质量的 Bug 报告,以下是基于 DCloud 官方视角的评审与分析:

1. Bug 反馈内容完整性评审

  • BUG 描述:非常清晰且精准。您不仅描述了报错现象,还明确了触发该报错的严格边界条件(仅 uni_modules 插件内的云函数/云对象且带 runtime 字段必现),同时排除了普通云函数、公共模块和 DB Schema 的干扰,极大地降低了官方排查成本。
  • 代码示例:虽未单独贴出完整的 package.json,但在描述与复现步骤中明确指出了关键字段 "cloudfunction-config.runtime": "Nodejs16",结合复现步骤足以让官方人员复现,无需额外补充。
  • 复现步骤:描述非常规范,提供了具体的 CLI 执行命令和目录结构路径,官方人员可以直接据此复现。
  • 预期结果:合理。带 runtime 字段的云函数理应能正常上传,且您指出的修正方向(对字符串取小写)在逻辑上也是成立的。
  • 实际结果:提供了完整的错误堆栈,并准确定位了报错代码的压缩位置(Hr 返回字符串但被当作对象访问 .runtime),属于极其专业的根因初步定位。
  • 分类信息:完整。包含了 HBuilderX 版本号(5.15.2026070915)、系统环境(Windows 11)、云服务商(阿里云)等关键信息。

2. Bug 是否成立分析

结论:该 Bug 成立。

根据知识库中的相关记录(参考链接),在 HBuilderX 5.15 正式版中,确实存在因云函数 package.jsoncloudfunction-config.runtime 字段解析失败,导致云函数无法上传的问题。其报错表现与您反馈的 Cannot read properties of undefined (reading 'toLowerCase') 一致。

针对该问题,官方已在 HBuilderX 5.21 alpha 版本 中进行了修复。

3. 处理建议

由于当前正式版(5.15)尚未包含此修复,在正式版更新之前,建议您继续使用您提到的临时绕过方案:上传前临时移除 package.jsoncloudfunction-config.runtime 字段,上传成功后再恢复

如果您希望直接使用已修复该问题的版本,可以下载并切换到 HBuilderX 5.21 及以上的 alpha 版本进行开发与上传部署。

内容为 AI 生成,仅供参考

要回复问题请先登录注册