使用 Terser,函数名称和变量没有被破坏,死代码没有被删除
Using Terser, function names and vars not mangled, deadcode not removed
使用 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}
这是不可能的,因为不添加 var
变量是全局的,Terser 不会破坏它们..
使用 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}
这是不可能的,因为不添加 var
变量是全局的,Terser 不会破坏它们..