Сбой сборки grunt, когда в источнике существуют отладочные отпечатки
Я работаю над проектом PHP/Javascript, где я прекрасно настроил рабочий процесс сборки. Он включает в себя тестирование, минимизацию, сжатие в конечный ZIP-файл и многое другое.
Я хочу создать задачу, которая не выполняется, если в исходном коде есть определенные шаблоны. Я хотел бы искать любой print_r()
, error_log()
, var_dump()
и т. д. функционируют и останавливают процесс сборки, если таковые имеются. Возможно, позже я хотел бы проверить вещи в Javascript или CSS, так что это не только вопрос PHP.
Я знаю, что это можно сделать с grunt-shell
а также grep
но я хотел бы знать следующее:
- Существуют ли плагины для этой задачи? В идеале я хотел бы иметь возможность указать список регулярных выражений для каждого типа файлов и указать, следует ли продолжить или не выполнить сопоставление с образцом.
- Как другие решают проблему двойной проверки упакованного источника на наличие наиболее распространенных отладочных операторов или других шаблонов?
1 ответ
Не полный ответ на мой вопрос, но я недавно столкнулся с этим плагином ворчания, который несколько связан. Удаляет console.log
заявления из JavaScript. Еще не пробовал. Выглядит хорошо. Я все еще хотел бы знать, есть ли что-то подобное для PHP, хотя.
http://grunt-tasks.com/grunt-remove-logging-calls/
Редактировать: видя, что здесь только ветер перекатывается здесь, я публикую свой обходной путь, который основан на grunt-shell
, Однако это не то, что я искал. Он не идеален, потому что не выполняет правильный синтаксический анализ:
shell: {
check_debug_prints: {
command: '(! (egrep -r "var_dump|print_r|error_log" --include=*.php src || egrep -r "console\.\w+|debugger;" --include=*.js src) ) || (echo "Debug prints in source - build aborted" && false )'
}
},
а также
grunt.loadNpmTasks( 'grunt-shell' );
Редактировать 2: я наконец-то нашел плагин, который я искал. Это ворчание-поиск. E сть failOnMatch
логическая опция, которая позволяет указать, должен ли определенный шаблон регулярного выражения вызывать сбой сборки при его обнаружении.