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

SonarQube扫描.NET与Angular混合项目时Angular代码未被分析问题

问题根因

扫不到Angular代码、出现NU1503警告的核心原因非常明确:

  • SonarScanner for .NET默认只会自动识别、分析C#/VB.NET这类.NET平台语言项目,你解决方案里的Angular项目是.esproj格式(Visual Studio内置的单页应用项目模板),不属于.NET标准类库/可执行项目格式,.NET CLI执行restore时识别不了它的构建目标,就会抛出跳过restore的警告,扫描器也不会自动把这个项目里的前端代码纳入分析范围。
  • 现有配置只粗略设置了sonar.sources=src/,既没有排除前端依赖、构建缓存这类不需要扫描的目录,也没指定TS分析依赖的tsconfig路径、没满足TS扫描的前置环境要求,就算路径覆盖到了前端目录,扫描器也不会正常解析TS/Angular代码。
修复步骤

按以下顺序配置即可同时完成C#和Angular代码的扫描:

1. 前置环境检查

  • 确认SonarQube服务端已启用SonarJS/TypeScript分析插件(社区版及以上版本默认自带,若被手动禁用先重新启用并重启服务)
  • 执行扫描的机器必须安装16及以上版本的Node.js,且执行扫描的终端可以直接调用node命令(执行node -v能正常输出版本号即可),Sonar的TS/JS分析强依赖Node环境,缺失的话前端代码会直接跳过不扫描。

2. 调整sonar-project.properties配置

不要直接把整个src目录无差别纳入扫描,要明确排除无效目录,指定TS分析的核心配置,参考如下:

sonar.projectKey=it-entwicklung_dotnet_mypoettinger_AYFcAof9yGNGEq-TtfGV
sonar.qualitygate.wait=true
sonar.sourceEncoding=UTF-8
sonar.projectName=mypoettinger

# 全局源码根目录
sonar.sources=src/
# 全局排除规则:跳过前端依赖、构建产物、缓存目录,跳过C#编译生成目录,跳过esproj项目文件本身
sonar.exclusions=**/node_modules/**,**/dist/**,**/.angular/**,**/bin/**,**/obj/**,**/*.esproj

# TS/Angular专属配置,替换成你Angular项目实际的tsconfig.json路径
sonar.typescript.tsconfigPath=src/xxx.App/tsconfig.json
sonar.javascript.file.suffixes=.js,.jsx
sonar.typescript.file.suffixes=.ts,.tsx

注意:sonar.typescript.tsconfigPath的路径必须和实际文件位置完全匹配,否则TS分析会找不到类型定义,出现大量漏报、误报。

3. 调整扫描执行流程

按顺序执行以下命令,不要直接走默认的.NET扫描流程:

  • 先进入Angular项目所在目录,执行npm install安装完所有前端依赖,再切回解决方案根目录
  • 执行扫描初始化命令:dotnet sonarscanner begin /k:"你的项目Key" /d:sonar.host.url="你的SonarQube服务地址" /d:sonar.token="你的扫描令牌"
  • 执行解决方案依赖还原:dotnet restore src/xxx.sln,这里出现的esproj NU1503警告无需处理,是.NET CLI不识别前端项目格式导致的,不影响最终扫描结果
  • 执行解决方案编译:dotnet build src/xxx.sln --no-restore
  • 执行扫描收尾上传命令:dotnet sonarscanner end /d:sonar.token="你的扫描令牌"

可选优化

如果不想看到NU1503警告,可以在扫描时临时把Angular的esproj项目从解决方案里排除,或者在build命令里指定只编译C#相关项目——前端代码已经通过sonar.sources的路径配置纳入扫描范围,不需要依赖.NET的构建流程识别。

结果验证

扫描完成后进入SonarQube的项目概览页,查看代码语言分布统计,能同时看到C#和TypeScript的代码行数占比,就说明两类代码都已被正常纳入扫描范围。

内容的提问来源于stack exchange,提问作者Georg Edlbauer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 23:01:39