Использование Terser, имена функций и переменные не искажены, мертвый код не удален - PullRequest
0 голосов
/ 15 октября 2019

Используя Terser, я не могу получить желаемые результаты.

Я пытаюсь минимизировать код тестирования, приведенный ниже, и имена функций не минимизируются, что бы я ни пытался. Имена переменных тоже остаются прежними, только внутри локальных функций, имеющих параметры, они изменяются. Я установил toplevel на true и попробовал все варианты, которые я могу придумать. Мертвый код в neverBeCalled также не исчезает. Используя Terser v4.3.4 и не испытывайте проблем с использованием другого минификатора, если это сработает.

Моя конфигурация:

var options = {
    warnings: "verbose",
    keep_fnames: false,
    mangle: {
     toplevel: true,
   },
    compress: {
    passes: 20,
    dead_code: true,
    sequences: false,
    conditionals: false,
    drop_console: true,
},
    output: {
        ecma: 6,
        semicolons: false
    }

};

Исходный файл тестирования:

init = function(){

test="testing";

bla = "blabla"

shameVar=903
}

update = function(){


test+="test"
test+="123"
x=10;
bla=bla+"x"
tester = myFuncWithLongName(23,24);
shameVar=shameVar-1;
}

myfuncWithLongName = function(eat,sleep){
resting=sleep+shameVar;
some = eat+resting;

return some;
}

neverBeCalled = function(){

thisdoesnot=0;
return thisdoesnot;

}

Результат

init=function(){test="testing"
bla="blabla"
shameVar=903}
update=function(){test+="test"
test+="123"
x=10
bla+="x"
tester=myFuncWithLongName(23,24)
shameVar-=1}
myfuncWithLongName=function(t,e){resting=e+shameVar
some=t+resting
return some}
neverBeCalled=function(){thisdoesnot=0
return thisdoesnot}

1 Ответ

0 голосов
/ 15 октября 2019

Это невозможно, потому что без добавления var переменные являются глобальными, а Terser их не искажает ..

...