当源代码中存在调试打印时,会使grunt构建失败

时间:2016-04-14 09:51:19

标签: gruntjs build-process post-processing software-quality debug-print

我正在开发一个PHP / Javascript项目,我很好地建立了一个构建工作流程。它涉及测试,缩小,压缩成最终的zip可交付物,以及许多其他好东西。

我想构建一个在源代码中存在某些模式时失败的任务。我想查找任何print_r()error_log(),{{1等等函数,如果有的话,暂停构建过程。也许以后我想检查Javascript或CSS中的内容,这样这不仅仅是一个PHP问题。

我知道可以使用var_dump()grunt-shell来完成,但我想了解以下内容:

  1. 是否有特定于此任务的grunt插件?理想情况下,我希望能够为每种文件类型指定正则表达式列表,并设置是否继续或不通过模式匹配构建
  2. 其他人如何处理问题仔细检查最常见的调试语句或其他模式的打包源?

1 个答案:

答案 0 :(得分:1)

对我的问题不是一个完整的答案,但我最近遇到了这个有点相关的咕噜插件。它从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插件。它是grunt-search。有一个failOnMatch布尔选项,可以指示特定的正则表达式模式是否会导致构建在找到时失败。