工具加载中
📢设计派导航(shejipai.Net)域名是设计派的汉语拼音,注意咱是NET域名哦!投放广告请联系QQ1989473781
做Web前端开发,总是要考虑页面的打开速度,如果文件数量越少、文件长度越小,就可以直接的提升网页的访问速度。UglifyJS是一个Javascript开发的通用的语法分析、代码压缩、代码优化的一个工具包。UglifyJS是基于Nodejs环境开发,支持CommonJS模块系统的任意的Javascript平台。本工具基于UglifyJS2开发。
javascript混淆压缩工具使用帮助:
压缩器选项 Compressor options
你要传入 --compress
(-c
)来启用压缩功能。你可以用逗号隔开选项。选项的形式为foo=bar
,或者就foo
(后者等同于你要设为true
,相当于foo=true
的缩写)。
sequences
(默认true) -- 连续声明变量,用逗号隔开来。可以设置为正整数来指定连续声明的最大长度。如果设为true
表示默认200
个,设为false
或0
则禁用。sequences
至少要是2
,1
的话等同于true
(即200
)。默认的sequences设置有极小几率会导致压缩很慢,所以推荐设置成20
或以下。properties
-- 用.
来重写属性引用,例如foo["bar"] → foo.bar
dead_code
-- 移除没被引用的代码drop_debugger
-- 移除debugger;
unsafe
(默认 false) -- 使用 "unsafe"转换 (下面详述)unsafe_comps
(默认 false) -- 保留<
和<=
不被换成>
和>=
。假如某些运算对象是用get
或valueOf
object得出的时候,转换可能会不安全,可能会引起运算对象的改变。此选项只有当comparisons
和unsafe_comps
都设为true时才会启用。unsafe_math
(默认 false) -- 优化数字表达式,例如2 * x * 3
变成6 * x
, 可能会导致不精确的浮点数结果。unsafe_proto
(默认 false) -- 把Array.prototype.slice.call(a)
优化成[].slice.call(a)
conditionals
-- 优化if
等判断以及条件选择comparisons
-- 把结果必然的运算优化成二元运算,例如!(a <= b) → a > b
(只有设置了unsafe_comps
时才生效);尽量转成否运算。例如a = !b && !c && !d && !e → a=!(b||c||d||e)
evaluate
-- 尝试计算常量表达式booleans
-- 优化布尔运算,例如!!a? b : c → a ? b : c
loops
-- 当do
、while
、for
循环的判断条件可以确定是,对其进行优化。unused
-- 干掉没有被引用的函数和变量。(除非设置"keep_assign"
,否则变量的简单直接赋值也不算被引用。)toplevel
-- 干掉顶层作用域中没有被引用的函数 ("funcs"
)和/或变量("vars"
) (默认是false
,true
的话即函数变量都干掉)top_retain
-- 当设了unused
时,保留顶层作用域中的某些函数变量。(可以写成数组,用逗号隔开,也可以用正则或函数. 参考toplevel
)hoist_funs
-- 提升函数声明hoist_vars
(默认 false) -- 提升var
声明 (默认是false
,因为那会加大文件的size)if_return
-- 优化 if/return 和 if/continuejoin_vars
-- 合并连续var
声明cascade
-- 弱弱地优化一下连续声明, 将x, x
转成x
,x = something(), x
转成x = something()
collapse_vars
-- 当var
和const
单独使用时尽量合并reduce_vars
-- 优化某些变量实际上是按常量值来赋值、使用的情况。warnings
-- 当删除没有用处的代码时,显示警告negate_iife
-- 当立即执行函数(IIFE)的返回值没用时,取消之。避免代码生成器会插入括号。pure_getters
-- 默认是false
. 如果你传入true
,UglifyJS会假设对象属性的引用(例如foo.bar
或foo["bar"]
)没有函数副作用。pure_funcs
-- 默认null
. 你可以传入一个名字的数组,UglifyJS会假设这些函数没有函数副作用。警告:假如名字在作用域中重新定义,不会再次检测。例如var q = Math.floor(a/b)
,假如变量q
没有被引用,UglifyJS会干掉它,但Math.floor(a/b)
会被保留,没有人知道它是干嘛的。你可以设置pure_funcs: [ 'Math.floor' ]
,这样该函数会被认为没有函数副作用,这样整个声明会被废弃。在目前的执行情况下,会增加开销(压缩会变慢)。drop_console
-- 默认false
. 传true
的话会干掉console.*
函数。如果你要干掉特定的函数比如console.info
,又想删掉后保留其参数中的副作用,那用pure_funcs
来处理吧。expression
-- 默认false
。传true
来保留终端语句中没有"return"的完成值。例如在bookmarklets。keep_fargs
-- 默认true
。阻止压缩器干掉那些没有用到的函数参数。你需要它来保护某些依赖Function.length
的函数。keep_fnames
-- 默认false
。传true
来防止压缩器干掉函数名。对那些依赖Function.prototype.name
的函数很有用。延展阅读:keep_fnames
混淆选项.passes
-- 默认1
。运行压缩的次数。在某些情况下,用一个大于1的数字参数可以进一步压缩代码大小。注意:数字越大压缩耗时越长。keep_infinity
-- 默认false
。传true
以防止压缩时把1/0
转成Infinity
,那可能会在chrome上有性能问题。
美化器选项 Beautifier options
代码生成器默认会输出尽量简短的代码。假如你想美化一下输出代码,请设置--beautify
(-b
)。你可以传入更多可选的选项参数来控制代码生成:
beautify
(默认true
) -- 是否美化输出代码。传-b
的话就是设成true。假如你想生成最小化的代码同时又要用其他设置来美化代码,你可以设-b beautify=false
。indent-level
(默认 4) 缩进格数indent-start
(默认 0) -- 每行前面加几个空格quote-keys
(默认false
) -- 传true
的话会在对象所有的键加上括号space-colon
(默认true
) -- 在冒号后面加空格ascii-only
(默认false
) -- 避免Unicode字符在字符串/正则中出现(非ascii字符会变不合法)。inline-script
(默认false
) -- 避免字符串中出现</script
中的斜杠width
(默认 80) -- 仅在美化时生效,设定一个行宽让美化器尽量实现。这会影响行中文字的数量(不包括缩进)。当前本功能实现得不是非常好,但依然让美化后的代码可读性大大增强。max-line-len
(默认 32000) -- 最大行宽(压缩后的代码)bracketize
(默认false
) -- 永远在if
,for
,do
,while
,with
后面加上大括号,即使循环体只有一句。semicolons
(默认true
) -- 用分号分开多个声明。如果你传false
,则总会另起一行,增强输出文件的可读性。(gzip前体积更小,gzip后稍大一点点)preamble
(默认null
) -- 如果要传的话,必须是字符串。它会被加在输出文档的前面。sourcemap会随之调整。例如可以用来插入版权信息。quote_style
(默认0
) -- 影响字符串的括号格式(也会影响属性名和指令)。0
-- 倾向使用双引号,字符串里还有引号的话就是单引号。1
-- 永远单引号2
-- 永远双引号3
-- 永远是本来的引号keep_quoted_props
(默认false
) -- 如果启用,会保留属性名的引号。
混淆选项 Mangler options
你需要传入--mangle
(-m
)来使启用混淆功能。支持用逗号隔开选项:
toplevel
— 混淆在最高作用域中声明的变量名(默认disabled)eval
- 混淆在eval
或with
作用域出现的变量名(默认disabled)
UglifyJS中文文档
https://segmentfault.com/a/1190000008995453

暂无评论