Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Grunt上执行uglifyjs任务期间有条件地删除调试_Javascript_Node.js_Gruntjs_Uglifyjs_Grunt Contrib Uglify - Fatal编程技术网

Javascript 在Grunt上执行uglifyjs任务期间有条件地删除调试

Javascript 在Grunt上执行uglifyjs任务期间有条件地删除调试,javascript,node.js,gruntjs,uglifyjs,grunt-contrib-uglify,Javascript,Node.js,Gruntjs,Uglifyjs,Grunt Contrib Uglify,我想在构建时删除我的调试语句,我注意到我可以定义global_defs:{DEBUG:false}来删除包含在调试子句if(DEBUG){} 我的丑陋任务似乎没有删除任何调试部分,对我做错了什么有什么想法 我正在使用grunt contrib uglify v0.3.3 这是我的咕噜任务: somefile.js ... if (DEBUG) { console.log('epic fail - fix your build'); } ... grunt con

我想在构建时删除我的调试语句,我注意到我可以定义
global_defs:{DEBUG:false}
来删除包含在调试子句
if(DEBUG){}

我的丑陋任务似乎没有删除任何调试部分,对我做错了什么有什么想法

我正在使用grunt contrib uglify v0.3.3

这是我的咕噜任务:

somefile.js

...
    if (DEBUG) {
       console.log('epic fail - fix your build');
    }
...

grunt contrib uglify中似乎有一个bug,它只从一个文件中删除全局定义。我注意到,如果我将文件缩减为一个文件,调试语句将按照选项的要求被删除

不起作用:

 ...
 files: {
          'yayMin.js' : [ ..., anotherfile.js, somefile.js, anotherfile2.js, ... ]
       }
 ...
工作:

...
files: {
          'yayMin.js' : [ somefile.js ]
       }
...
最后的咕噜任务

uglify: {
'build-minify' : {
        options: {
          mangle: false,
          compress: {
            global_defs: {
              DEBUG: false
            },
            dead_code: true
          },
          wrap: true
        },
        files : {
          'justSayNoToDebug.js' : [
            'ahHaveDebugsInMe.js'
          ]
        }
      },
另外,请查看哪些删除了这样编写的杂注:

// <debug>
doSomething();
// </debug>

// <validation>
performSomeValidationOnlyNeededDuringDevelopment();
// </validation>
//
doSomething();
// 
// 
执行部分验证OnlyneededDuringDevelopment();
// 

它还可以选择删除对
console.log()
调试器的调用语句。

ughhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
// <debug>
doSomething();
// </debug>

// <validation>
performSomeValidationOnlyNeededDuringDevelopment();
// </validation>