semantic-release报TypeError: Cannot read property 'name' of undefined如何排查
问题排查方案
从报错日志可以定位到核心问题为 ERELEASEBRANCHES 分支配置错误,你可以按以下顺序逐一排查:
- 检查semantic-release的分支配置
确认package.json的release字段、.releaserc(含json/yaml等后缀变体)配置文件、CI命令行参数三类配置入口中,是否正确填写了允许发布的分支。你当前日志显示分支配置为[]空数组,不符合要求,至少需要配置1个有效分支,配置示例如下:// package.json 配置示例 { "release": { "branches": ["main", "master"] } } - 确认CI运行的目标分支
检查发布任务运行时所在的分支,是否属于你配置的允许发布的分支列表。如果CI运行在测试分支、PR临时分支等非发布分支上,会因为匹配不到有效发布分支触发该错误。 - 核对仓库实际分支名称
很多仓库的默认分支已经从master改为main,如果你的配置里填写的分支名称和仓库实际存在的分支名称不一致,也会导致匹配失败,需要两边保持一致。 - 检查高级分支规则语法
如果你使用了正则匹配、前缀匹配、排除规则等高级分支配置,需要确认语法是否合法。语法错误会导致所有分支匹配失败,最终得到空的有效分支列表。 - 关于日志中的类型错误
日志中的TypeError: Cannot read property 'name' of undefined是分支配置错误触发失败回调后,@semantic-release/github插件的兼容问题,修复分支配置后该错误会同步消失,不需要单独处理。
内容的提问来源于stack exchange,提问作者NateR
相关产品推荐
相关产品推荐

