我一直在使用SonarQube对一些javascript代码进行质量检查,但是这段代码是使用AngularJS编写的。
其中一个SonarQube规则检查函数中的行数 - 这看似合理 - 但在AngularJS中,函数用于定义控制器,服务和指令,这些函数可能会变得非常大。从概念上讲,它们更像是类定义,其他函数嵌套在它们中。
理想情况下,我希望SonarQube检查内部函数的长度,可能还有内部函数的外部函数,但我不知道有什么方法可以做到这一点。
有没有其他人使用SonularQube和AngularJS遇到过这个问题,或者有人知道一个好的解决方案吗?
答案 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的功能分解成小块的一种方式。