Uglify Удалить console.log.bind с помощью pure_funcs - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь оптимизировать операторы console.log в ограниченном js. Я связываю 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 config:

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

Uglified (через https://skalman.github.io/UglifyJS-online/):

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