You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS 13环境构建项目时遇TypeError迭代错误求解决方案

解决MacOS 13环境下undefined is not iterable报错问题

问题根源

报错出现在macos-release包的index.js第27行,原因是该包的旧版本未收录MacOS 13(Ventura)的系统版本映射,导致nameMap.get(release)返回undefined,而解构赋值const [name, version] = ...无法对undefined执行迭代操作,触发类型错误。

解决方案

1. 强制升级macos-release到兼容版本

由于该包是嵌套依赖(被os-name间接引用),需通过包管理器的覆盖机制强制升级:

  • npm用户:在项目根目录的package.json中添加overrides字段:
    "overrides": {
      "macos-release": "^2.5.1"
    }
    
    执行npm install重新安装依赖,确保使用支持MacOS 13的版本。
  • yarn用户:在package.json中添加resolutions字段:
    "resolutions": {
      "macos-release": "^2.5.1"
    }
    
    执行yarn install更新依赖。

2. 禁用Cordova Telemetry(临时快速方案)

如果报错由Cordova的遥测模块触发,可直接禁用该功能以跳过相关代码执行:

cordova telemetry off

3. 手动修改旧版macos-release代码(紧急临时修复)

若无法立即升级依赖,可临时修改包内代码:

  1. 找到项目中node_modules/macos-release/index.js文件
  2. 在nameMap中添加MacOS 13的版本映射:
    const nameMap = new Map([
      // 保留原有条目...
      ['22', ['macOS', '13']],
      ['22.0.0', ['macOS', '13']]
    ]);
    

    注意:此修改会在重新安装依赖后失效,仅作为紧急临时方案。

内容的提问来源于stack exchange,提问作者ISSHO TECHNOLOGIES

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 02:10:51