Включите сложность c cyclmati в JSHint - PullRequest
1 голос
/ 23 января 2020

Я использую JSHint и хочу включить сложность цикломатикой c.
С Домашняя страница JsHint и Документы JsHint , кажется, JsHint может измерить это.
Но после того, как я запустил эту команду jshint test.js, чтобы проверить приведенный ниже файл

//test.js
$(document).ready(function() {
    $("p").click(function() {
        $(this).hide();
        var x = 5
    });

    function main() {
        return 'Hello, World!';
    }
});

Я получаю только отчет о задержке (test. js: строка 4, строка 14, отсутствует точка с запятой.,. ..)

Как я могу это сделать?

1 Ответ

2 голосов
/ 23 января 2020

Из документов API похоже, что вы можете позвонить JSHINT.data() после запуска, чтобы получить метрики, включая измерение сложности:

JSHINT.data ()

Создание отчета, содержащего сведения о самом последнем вызове JSHINT.

Например, следующий код:

var source = [
  'function goo() {}',
  'foo = 3;'
];
var options = {
  undef: true
};
var predef = {
  foo: false
};

JSHINT(source, options, predef);

console.log(JSHINT.data());

... будет выдавать следующий результат:

{
  functions: [
    {
      name: 'goo',
      // ...
      metrics: {
        complexity: 1,
        parameters: 0,
        statements: 0
      }
      // ...

Это покажет измеренную сложность.

Обратите внимание, что это полностью отделено от maxcomplexity rule - если включено, и вы установили достаточно низкое значение, и у вас достаточно сложная функция, ваш вывод linting будет содержать ошибку.

...