React+TS/JS项目:如何配置SonarQube支持kebab-case文件名或禁用规则
解决SonarQube对kebab-case文件名的代码异味问题
你遇到的是SonarQube检查「文件名与默认导出组件名匹配」规则触发的问题,以下是三种处理方案:
方案一:禁用对应匹配规则
触发该问题的规则ID,TypeScript版本为typescript:S100,JavaScript版本为javascript:S100,操作步骤如下:
- 登录SonarQube后台,进入你的项目
- 切换到「质量配置」页面,找到当前项目使用的规则集
- 搜索规则ID(如
S100)定位到目标规则 - 选择禁用该规则(可全局禁用或仅针对当前项目禁用)
方案二:配置规则兼容kebab-case文件名
如果不想完全禁用规则,可修改规则参数,让它同时支持帕斯卡命名和kebab-case:
- 进入SonarQube后台的规则配置页,找到上述规则
- 编辑规则的「文件名格式」参数,替换为支持两种命名的正则表达式:
^([A-Z][a-z0-9]*)*(\.([a-z0-9]+))?$|^[a-z0-9]+(-[a-z0-9]+)*(\.([a-z0-9]+))?$ - 保存配置后重新执行SonarQube扫描
临时方案:仅排除单个文件
如果只想跳过这一个文件的检查,无需修改全局规则,直接更新你的扫描配置:
修改lintExclusions变量,把目标文件加入排除列表:
const lintExclusions = `**/bootstrap.js, **/bootstrap.tsx, **/AppCompnonent.js, **/AppCoponent.tsx, **/components/time-distance.tsx, ...`;
重新运行扫描即可忽略该文件的此规则检查
内容的提问来源于stack exchange,提问作者micronyks
相关产品推荐
相关产品推荐

