How to integrate sonar for a Node JS project?

Irfan Fuard picture Irfan Fuard · Aug 13, 2015 · Viewed 14.1k times · Source

I have integrated sonarqube to my Node JS project which am working and it seems to be working fine with the javascript plugin. I would like to know if there is any way we can specifically mention sonarqube to check the javascript as Node JS?

The configurations to run sonar is specified in the gruntfile.js as below,

sonarRunner: {
    analysis: {
        options: {
            debug: true,
            separator: '\n',
            dryRun: false,
            sonar: {
                host: {
                    url: 'http://localhost:9000'
                },
                jdbc: {
                    url: 'jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance',
                    username: 'root',
                    password: 'root'
                },

                projectKey: 'sonar:grunt-sonar-runner:0.1.0',
                projectName: 'Grunt Sonar Runner',
                projectVersion: '0.10',
                sources: '/app/scripts/controllers',
                language:'js',
                sourceEncoding: 'UTF-8'
            }
        }
    }
}

Answer

G. Ann - SonarSource Team picture G. Ann - SonarSource Team · Aug 14, 2015

The only library/framework-specific parameter available for JavaScript analysis is related to jQuery, so there's no need to make this distinction in your analysis.

However, if there were library-specific settings related to Node.js, you would have two options:

  • simply add the setting in your parameters block. E.G. sonar.javascript.jQueryObjectAliases: foo
  • make the setting change via the project administration GUI (which is the preferred method)

If there are specific rule parameters that should be altered for Node.js projects, then you should accomplish that by creating a Node.js-specific rule profile with those parameter settings and assigning your project to it.