Как получить SonarQube, чтобы хорошо играть с AngularJS?
Я смотрел на использование SonarQube для проверки качества на каком-то javascript-коде, но этот код написан с помощью AngularJS.
Одно из правил SonarQube проверяет количество строк в функции - что кажется разумным - но в AngularJS функции используются для определения контроллеров, служб и директив, и эти функции могут стать довольно большими. Понятно, что они действительно больше похожи на определения классов, а другие функции вложены в них.
В идеале я бы хотел, чтобы SonarQube проверил длины внутренних функций и, возможно, внешнюю функцию с внутренними исключениями, но я не знаю, как это сделать.
Кто-нибудь еще столкнулся с этой проблемой, используя SonarQube с AngularJS, или кто-нибудь знает хорошее решение?
Ответы
Ответ 1
Одно из решений состоит в том, чтобы объявить все ваши методы отдельно в вашей функции самостоятельного выполнения.
(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]);
}());
Это определенно может быть неудобным шаблоном для некоторых разработчиков, но это один из способов разбить ваши функции на более мелкие куски для SonarQube.