• defaults(默认值为true)- 将false传递以禁用大多数默认启用的压缩变换。当您只想启用一些压缩选项并禁用其余选项时,这很有用。
  • arrows(默认值为true) - 对象和类字面量办法也将被转换为箭头表达式(如果所得代码更短):m(){return x}变成m:()= > x。要对不应用this或arguments的惯例ES5函数执行此操作,请参见unsafe_arrows。
  • arguments(默认值为false) - 尽可能用函数参数名称替换arguments [index]。
  • booleans(默认值为true)- boolean语境的各种优化,例如!!a?b:c→a?b:c
  • booleans_as_integers(默认值为false)- 将布尔值转换为0和1,还使得布尔值的比拟应用==和!=而不是===和!=。
  • collapse_vars(默认值为true) - 如果容许副作用,则折叠单个十分量变量。
  • comparisons(默认值为true) - 对二进制节点利用某些优化,例如!(a <= b)→ a> b(仅在unsafe_comps时),尝试否定二进制节点,例如a =!b &&!c &&!d &&!e → a =!(b || c || d || e)等。留神:comparisons与lhs_constants一起应用成果最佳。
  • computed_props(默认值为true) - 将常量计算出的属性转换为一般属性:{["computed"]:1}转换为{computed:1}。
  • conditionals(默认值为true) - 为if-s和条件表达式利用优化
  • dead_code(默认值为true) - 删除无法访问的代码
  • directives(默认值为true) - 删除多余或非规范指令
  • drop_console(默认值为false) - 将true传递以抛弃console。 *函数
  • global_defs(默认值为{}) - 请参见条件编译
  • hoist_funs(默认值为false) - 晋升函数申明
  • hoist_props(默认值为true) - 将常量对象和数组文字中的属性晋升为一般变量,受一组束缚的束缚。例如:var o = {p:1,q:2}; f(o.p,o.q);被转换为f(1,2);。留神:hoist_props与启用混同的compress选项传递设置为2或更高以及启用toplevel的压缩选项一起应用最佳。
  • hoist_vars(默认值为false) - 晋升var申明(默认状况下为false,因为它仿佛会减少输入的大小)
  • if_return(默认值为true) - 针对if / return和if / continue进行优化
  • inline(默认值为true) - 内联函数调用,带有简略/返回语句:
  • false - 与0雷同 0 - 禁用内联 1 - 内联简略函数 2 - 内联带有参数的函数 3 - 内联带有参数和变量的函数 true - 与3雷同 join_vars(默认值为true) - 退出间断的var,let和const语句
  • keep_classnames(默认值为false) - 传递true以避免压缩器抛弃类名。传递正则表达式只保留与该正则表达式匹配的类名。还请参阅:keep_classnames搅拌选项。
  • keep_fargs(默认值为true) - 避免压缩器抛弃未应用的函数参数。您须要此代码依赖于Function.length。
  • keep_infinity(默认值为false) - 传递true以避免将Infinity压缩为1/0,这可能会导致Chrome呈现性能问题。
  • lhs_constants(默认值为true) - 将常量值挪动到二进制节点的左侧。 foo == 42 → 42 == foo
  • loops(默认值为true) - 针对do,while和for循环进行优化,当咱们能够动态确定条件时。
  • module(默认为false) - 压缩ES6模块时传递true。隐含了严格模式以及toplevel选项。
  • negate_iife(默认值为true) - 反转“Immediately-Called函数表达式”,其中返回值被抛弃,以防止代码生成器插入的括号。
  • properties(默认值为true) - 应用点符号重写属性拜访,例如foo [“bar”] → foo.bar
  • pure_funcs (默认值为null)- 您能够传递一个函数名数组,Terser将假设这些函数不会产生副作用。留神:不会查看在作用域内是否从新定义了名称。例如,如果变量q在其余中央没有应用,则在此示例中Terser将删除它,但仍将保留Math.floor(a/b),因为它不晓得其作用。您能够传递pure_funcs:['Math.floor']来让它晓得此函数不会产生任何副作用,这种状况下整个语句都将被抛弃。以后实现减少了一些开销(压缩将变慢)。
  • pure_getter(默认为“strict”):如果您将其设置为true,则Terser将假设对象属性拜访(例如foo.bar或foo [“bar”])没有产生任何副作用。指定“strict”仅在foo必定不会有异样(即不为null或undefined)时将foo.bar视为无副成果。
  • reduce_vars(默认为true) - 进步对调配并用作常量值的变量进行优化。
  • reduce_funcs(默认为true) - 在可能的状况下使单次应用函数内联。取决于启用reduce_vars。禁用此选项有时会进步输入代码的性能。
  • sequences (默认为true) - 应用逗号运算符连贯间断的简略语句。能够设置为正整数,以指定将生成的间断逗号序列的最大数量。如果将此选项设置为true,则默认序列限度为200。将选项设置为false或0以禁用。最小序列长度为2。序列值为1的序列先人等同于true,因而示意200。在十分常见的状况下,默认序列限度会导致压缩工夫十分慢,在这种状况下,举荐应用20或更小的值。
  • side_effects (默认为true) – 删除无副作用且后果未被应用的表达式。
  • switches (默认为true) – 去重和删除不可达的开关分支。
  • toplevel (默认为false) – 在顶级作用域中抛弃未被援用的函数和/或变量 (默认状况下为 false,设置为 true 能够同时抛弃未被援用的函数和变量)。
  • top_retain (默认为null) – 避免特定的顶级 function 和变量被删除 ("funcs" and/or "vars")(能够是数组,逗号分隔的字符串、RegExp 或 function。意味着 toplevel)。
  • typeofs (默认为true) – 将 typeof foo == "undefined" 转换为 foo === void 0。留神:针对 IE10 及更早版本的浏览器,倡议将此值设置为 false,因为存在已知问题。
  • unsafe (默认为 false) – 利用 "不平安" 的转换(详细信息)。
  • unsafe_arrows (默认为 false) – 如果函数体不援用 this,则将 ES5 格调的匿名函数表达式转换为箭头函数。留神:如果代码依赖函数具备原型,而箭头函数不足原型,则执行此转换不总是平安的。该转换要求将 ecma 压缩选项设置为 2015 或更高版本。
  • unsafe_comps (默认为 false) – 将 < 和 <= 反转为 > 和 >=,以容许改良压缩。当至多两个操作数中的一个是具备计算值的对象时,这可能是不平安的,因为应用了相似 get 或 valueOf 的办法。在比拟操作数替换后,这可能会导致执行程序发生变化。仅当同时将 comparisons 和 unsafe
  • unsafe_math (默认为 false) - 对数值表达式进行优化,例如 2 x 3 能够转换为 6 * x,这可能会产生不准确的浮点数后果。
  • unsafe_symbols (默认为 false) - 从本地 Symbol 申明中删除键值,例如 Symbol("kDog") 变为 Symbol()。
  • unsafe_methods (默认为false) - 将{ m: function(){} } 转换为 { m(){} }。必须将 ecma 设置为 6 或更高版本能力启用此转换。如果 unsafe_methods 是 RegExp,则与 RegExp 匹配的键值对将被转换为简洁办法。留神:如果启用此选项,若任何代码尝试在前一个函数上应用 new,则存在“<method name> is not a constructor ”TypeError 的危险。
  • unsafe_proto (默认为 false) - 优化像 Array.prototype.slice.call(a) 这样的表达式为 [].slice.call(a)。
  • unsafe_regexp (默认为 false) - 启用变量与 RegExp 值之间的替换,就像它们是常量一样。
  • unsafe_undefined (默认为 false) - 如果作用域中存在名为 undefined 的变量,则用 void 0 替换它(变量名将被混同,通常被简化为单个字符)。
  • unused (默认为 true) - 删除未援用的函数和变量(简略的间接变量赋值不算作援用,除非设置为"keep_assign")。