如何让SonarQube与AngularJS很好地配合?

时间:2014-03-05 17:28:45

标签: javascript angularjs sonarqube

我一直在使用SonarQube对一些javascript代码进行质量检查,但是这段代码是使用AngularJS编写的。

其中一个SonarQube规则检查函数中的行数 - 这看似合理 - 但在AngularJS中,函数用于定义控制器,服务和指令,这些函数可能会变得非常大。从概念上讲,它们更像是类定义,其他函数嵌套在它们中。

理想情况下,我希望SonarQube检查内部函数的长度,可能还有内部函数的外部函数,但我不知道有什么方法可以做到这一点。

有没有其他人使用SonularQube和AngularJS遇到过这个问题,或者有人知道一个好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

一种解决方案是在your self-executing function中单独声明所有方法。

(function(){
    var controller = function(dependency){
         //...
    },

    someDirective = function(dependency){
        //...
    },

    //Finally, your module
    module = angular.module("MyMod", []);

    module.controller("MyController", ['dependency', controller]);
    module.directive("someDirective", ['dependency', someDirective]);
}());

对于某些开发者来说,这绝对是一个令人不舒服的模式,但它是将SonreQube的功能分解成小块的一种方式。