Почему не работает Google JavaScript Linter через Grunt?

Мы используем gjslinter с Grunt для линтинга всех js-файлов в нашем проекте.

Конфигурация в Gruntfile.js выглядит следующим образом:

gjslint: {
    options: {
        flags: ['--disable 220,110,200'],
        reporter: {
            name: 'gjslint_xml',
            dest: '<%= pkg.docs %>/gjslint/gjslint.xml'
        }
    },
    all: {
        src: ['<%= pkg.src %>/assets/js/modules/**', '<%= pkg.src %>/assets/js/lib/jquery/plugins/jquery-hse/**']
    }
}

Но когда я начинаю литье, это терпит неудачу:

$ grunt gjslint Running "gjslint:all" (gjslint) task
Warning: Task "gjslint:all" failed. Use --force to continue.

Aborted due to warnings.

Зачем? Пути должны быть правильными. Больше нет сообщений об ошибках или отчетов. Как я могу отладить это?

1 ответ

Решение

Я нашел решение, выполнив следующие действия (для Windows 10 здесь):

  1. Установленный Python2.7 https://www.python.org/downloads/
  2. Добавлены установочные каталоги Python C:/Python27 так же как C:/Python27/Scripts в PATH а также PYTHONPATH переменные env
  3. Установил Google JavaScript Linter, запустив это в командной строке:

    pip install https://github.com/google/closure-linter/zipball/master

  4. Изменены настройки репортера для Grunt:

(Gruntfile.js):

reporter: {
    name: 'console' //report to console
}

Теперь я получаю правильные сообщения об ошибках в консоли при запуске grunt gjslint, Он показал мне, что был файл min.js, в котором был какой-то неверный код. Итак, я удалил его из Gruntfile.js, добавив исключение для min файлов:

src: [
  '<%= pkg.src %>/assets/js/modules/**/*.js',
  '<%= pkg.src %>/assets/js/lib/jquery/plugins/jquery-hse/**/*.js',
  '!<%= pkg.src %>/assets/js/**/*.min.js'
]

Это решило проблему!

Другие вопросы по тегам