繁体   English   中英

在Grunt上的uglifyjs任务期间有条件地删除DEBUG

[英]Conditionally removing DEBUG during uglifyjs task on Grunt

我想在构建时删除我的DEBUG语句,我注意到http://lisperator.net/uglifyjs/compress我可以定义global_defs: { DEBUG : false }来删除调试子句中包含的任何内容if (DEBUG) {}

我的uglify任务似乎没有删除任何DEBUG部分,任何关于我做错的想法?

我正在使用grunt-contrib-uglify v0.3.3

这是我的笨拙任务: ......

uglify: {
   ...
   simple: {
       options : {
          mangle: false,
          compress: {
            global_defs: {
              DEBUG: false
            },
            dead_code: true
          }
       },
       files: {
          'yayMin.js' : [ ..., somefile.js, ... ]
       }
   },...
...

somefile.js

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

另请查看grunt-groundskeeper ,删除这样编写的pragma:

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

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

它还具有删除对console.log()debugger;调用的选项debugger; 声明。

grunt-contrib-uglify中似乎存在一个只从一个文件中删除global_def的错误。 我注意到,如果我将文件缩减为一个文件,则会根据选项的要求删除DEBUG语句

不工作:

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

工作:

...
files: {
          'yayMin.js' : [ somefile.js ]
       }
...

最终的Grunt任务

uglify: {
'build-minify' : {
        options: {
          mangle: false,
          compress: {
            global_defs: {
              DEBUG: false
            },
            dead_code: true
          },
          wrap: true
        },
        files : {
          'justSayNoToDebug.js' : [
            'ahHaveDebugsInMe.js'
          ]
        }
      },

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM