Почему не работает 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 здесь):
- Установленный Python2.7 https://www.python.org/downloads/
- Добавлены установочные каталоги Python
C:/Python27
так же какC:/Python27/Scripts
вPATH
а такжеPYTHONPATH
переменные env Установил Google JavaScript Linter, запустив это в командной строке:
pip install https://github.com/google/closure-linter/zipball/master
Изменены настройки репортера для 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'
]
Это решило проблему!