簡體   English   中英

使用UglifyJS + GruntJS進行條件編譯

[英]Conditional Compilation using UglifyJS + GruntJS

我正在使用grunt-bbb來處理我正在進行的JavaScript項目。 我喜歡使用grunt對UglifyJS的支持來使用條件編譯,但我似乎無法讓它工作。 我正在嘗試將一個defines選項傳遞給uglify任務,但它似乎沒有起作用。

我的grunt.js文件看起來像:

module.exports = function (grunt) {
    grunt.initConfig({

        // ... config options ...

        uglify: {
            "mangle": {
                "defines": {"DEBUG": false}
            }
        },

        // ... more configs ...

    });

    // ... custom tasks ...

    grunt.registerTask("release", "default min mincss");
};

我也嘗試在mangle對象中添加一個except屬性,這似乎也沒有用(它仍然會破壞文件...)UglifyJS顯然正在運行,但它似乎並沒有得到它傳入的選項。我也挖掘了代碼,當我在console.log(grunt.config('uglify')); 我明白了

{ mangle: { defines: { DEBUG: false } } }

看起來對我來說是正確的......

有什么想法嗎???

這是目前適合我的:

uglify: {
  options: {
    compress: {
      global_defs: {
        APP_DEBUG: false
      }
    }
  }
}

將它放在compress選項中,在這種情況下它會設置APP_DEBUG=false我從這里得到了這個修復: https//github.com/gruntjs/grunt-contrib-uglify/issues/12

我提交了一個問題 ,以步兵和aparently問題是內部丑化(的方式defines參數實際上是處理矛盾的文檔)。

以下代碼有效:

uglify: {
  mangle: {
    defines: {
      DEBUG: ['name', 'true']
    }
  }
}

將此傳遞給Uglify

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM