用途:在同时包含 JavaScript 或 TypeScript 前端的 .NET 仓库中,引入 SonarJS 来源的检查规则,用于发现代码坏味、认知复杂度问题和更深层的缺陷风险,并将可维护性与可靠性发现转变为评审或 CI 门禁。
适用触发条件:仓库已使用 SonarQube、SonarCloud 或 eslint-plugin-sonarjs;用户要求前端代码坏味、认知复杂度限制,或超出基础 ESLint 的深层缺陷风险规则。
不适用:只想用轻量基础 lint、不接受 SonarQube/SonarCloud 或 SonarJS 派生工具作为默认门禁、以及针对运行时页面质量而非源码可维护性的问题。
使用方式:先决定执行路径。本地开发循环可通过 eslint-plugin-sonarjs,把它当作 ESLint 扩展而非独立 CLI;若仓库已有 SonarQube 或 SonarCloud,则保留其完整分析管道,并让本地规则与服务器门禁对齐,避免两套冲突策略。
本地安装示例:npm install --save-dev eslint-plugin-sonarjs。随后将插件和选定规则加入已签入的 ESLint 配置,并用仓库常规入口验证,例如:npx eslint .
初始推广建议收窄范围:优先缺陷倾向规则、认知复杂度、重复分支或可疑控制流。发现问题应修复代码或分阶段启用规则,不要用大范围禁用掩盖首轮结果。将 Sonar 工具设为默认质量门禁前,需记录许可或托管方面的注意事项。
限制与注意:本仓库不提供独立的本地 sonarjs CLI,本地应通过 ESLint 加 eslint-plugin-sonarjs。插件加载失败通常意味着 ESLint 配置与已安装插件版本或注册语法不匹配。若本地 lint 与 SonarQube/SonarCloud 结果不一致,应以服务器门禁为准并有意对齐本地配置。若仓库明确选择仅用纯开源 lint 基线,则该技能不适用。具体版本兼容、许可细节和完整规则清单暂未提供。