使用 SonarCloud 和 Azure DevOps 分析 Javascript/Typescript 个项目

Analyse Javascript/Typescript project with SonarCloud and Azure DevOps

我有一个包含 Javascript 和 Typescript 文件的项目。我正在使用 SonarCloud 从 Azure DevOps 管道分析这个项目。

我在我的构建管道中这样设置任务准备分析配置

- task: SonarCloudPrepare@1
  inputs:
    SonarCloud: 'Sonarcloud'
    organization: 'MyOrg'
    scannerMode: 'CLI'
    configMode: 'manual'
    cliProjectKey: 'My key'
    cliProjectName: 'My name'
    cliSources: '.'

当 运行 管道时,我的管道在 Sonar Cloud Analyze 步骤

中出现以下错误
INFO: Found 1 tsconfig.json file(s): [/home/vsts/work/1/s/tsconfig.json]
##[error]ERROR: Cannot find module 'typescript'
##[error]ERROR: TypeScript dependency was not found and it is required for analysis.
ERROR: Install TypeScript in the project directory or use NODE_PATH env. variable to set TypeScript location, if it's located outside of project directory.

ERROR: TypeScript dependency was not found and it is required for analysis.
ERROR: Install TypeScript in the project directory or use NODE_PATH env. variable to set TypeScript location, if it's located outside of project directory.
##[error]ERROR: Missing TypeScript dependency

该分析适用于 javascript 文件,但不适用于打字稿文件。我在我的 package.json 中安装了 typescript 包作为开发依赖项,但它似乎被 SonarCloud 忽略了。

我找到的文档和主题与 SonarQube 版本相关,但我不知道如何使用 SonarCloud 进行设置。

默认情况下,如果您使用 Visual Studio,本地项目文件夹中的 node_modules 文件夹将不会添加到源代码管理中。

并且由于 Run Code Analysis 任务无法找到您的 package.json 文件中定义的依赖包,所以会发生此错误。我的可重现步骤:

然后我在 Prepare Analysis task 之前添加一个 npm install 任务来安装缺少的包:

NodeJS 是我的项目名称。同样在 Devops 存储库中,这是存在 package.json 的文件夹的名称。

然后这个问题在我的管道中消失了:

希望对您的问题也有帮助:)

此外: 如果需要,您还可以选择将本地 node_modules 文件夹添加到源代码管理中。但这在 Azure Devops 服务中不推荐