Uglify使用pure_funcs删除console.log.bind

时间:2019-04-01 02:59:19

标签: javascript uglifyjs terser

我正在尝试在缩小的js中优化出绑定的console.log语句。我要绑定console.log,以便默认情况下可以有一个参数。

uglifyjs的pure_funcs设置似乎无效(请参见下面的输出)

drop_console更糟糕,因为它设置了this.log = void并导致未定义的函数错误。

有什么办法可以做到这一点?

输入:

class A {
    constructor() {
        this.log = console.log.bind(this, 'class A');
    }

    meth() {
        this.log('not optimized out');
        console.log('optimized out');
    }
}

UglifyJS配置:

 drop_console     : false,
 pure_funcs       : ["console.log", "console.log.prototype.bind", "console.log.bind"],

已被压倒(通过https://skalman.github.io/UglifyJS-online/):

class A{constructor(){this.log=console.log.bind(this,"class A")}meth(){this.log("not optimized out")}}:

0 个答案:

没有答案