2

ビルド時に DEBUG ステートメントを削除したいのですが、 http://lisperator.net/uglifyjs/compressglobal_defs: { DEBUG : false }で、debug 句にラップされたものをすべて削除するように定義できることに気付きました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');
    }
...
4

2 に答える 2

2

また、次のように記述されたプラグマを削除するgrunt-groundskeeperも確認してください。

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

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

console.log()anddebugger;ステートメントの呼び出しを削除するオプションもあります。

于 2014-07-09T15:38:28.693 に答える
1

grunt-contrib-uglify には、1 つのファイルから global_defs のみを削除するバグがあるようです。ファイルを1つのファイルに減らすと、オプションで要求されたように、DEBUGステートメントが削除されることに気付きました

動作しませんでした:

 ...
 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'
          ]
        }
      },
于 2014-06-12T22:20:04.853 に答える