我正在进行一个PHP/Javascript项目,在该项目中我已经很好地设置了构建工作流。它涉及到测试、缩小、压缩到最终的zip交付,以及许多其他不错的东西。
我想构建一个在源代码中存在某些模式时失败的任务我想查找任何print_r()
、error_log()
、var_dump()
等函数,如果有,请停止构建过程。也许稍后我想检查一下Javascript或CSS中的内容,所以这不仅仅是一个PHP问题。
我知道grunt-shell
和grep
可以做到,但我想知道以下几点:
- 是否有特定于此任务的grunt插件理想情况下,我希望能够指定每个文件类型的正则表达式列表,并设置是继续还是失败构建模式匹配
- 其他人如何解决重复检查打包源代码中最常见的调试语句或其他模式的问题
这不是我问题的完整答案,但我最近遇到了这个有点相关的grunt插件。它从JavaScript中删除console.log
语句。还没试过。看起来不错。不过,我仍然想知道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:我终于找到了我想要的grunt插件。这是一次单调乏味的搜索。有一个failOnMatch
布尔选项,可以指示特定的正则表达式模式是否会在找到时导致构建失败。