javascript - 使用 UglifyJS + GruntJS 的条件编译

标签 javascript conditional-compilation gruntjs uglifyjs

我正在使用 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");
};

我也尝试将 except 属性添加到 mangle 对象中,但这似乎也不起作用(它仍然会破坏文件.. .) UglifyJS 显然正在运行,但它似乎没有传递选项。我也研究了代码,当我 console.log(grunt.config('uglify')) ; 我明白了

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

这对我来说是正确的...

有什么想法吗???

最佳答案

这是目前对我有用的:

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

将它放在压缩选项中有效,在这种情况下它将设置 APP_DEBUG=false 我从这里得到了这个修复:https://github.com/gruntjs/grunt-contrib-uglify/issues/12

关于javascript - 使用 UglifyJS + GruntJS 的条件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12360949/

相关文章:

linux - 在Jenkins中使用maven exec插件运行nodejs

javascript - 为什么应该使用模块 bundler (webpack) 而不是任务运行器 (grunt)?

javascript - React 功能组件 vs 经典组件

javascript - JavaScript中的日期问题

c++ - "has_trivial_destructor"定义而不是 "is_trivially_destructible"

c# - 在 .Net 中是否可以仅从客户端程序集的调试版本中调用某些代码?

gruntjs - 如何使用 grunt-svninfo 配置多个 svninfo 对象?

用于调用 Namespace 函数的 Javascript Onready 函数

javascript - Webpack 和 toastr

build - 使用 raspberry pi 进行测试/部署构建的条件编译