设计派 素材速搜工具

设计派导航为你提供一站式设计解决方案搜索让设计一键搜索极达!

470

工具数

2010

网站数

2,487,603

使用数

32,042

用户数

📢设计派导航(shejipai.Net)域名是设计派的汉语拼音,注意咱是NET域名哦!投放广告请联系QQ1989473781

工具加载中

javascript代码混淆压缩工具

  • 工具网址:点击跳转
  • 工具分类:站长工具
  • 使用次数:2165 次
  • 创建时间:June 25th 2021
  • 更新时间:June 25th 2021
  • 工具简介:javascript代码混淆压缩在线工具
  • 做Web前端开发,总是要考虑页面的打开速度,如果文件数量越少、文件长度越小,就可以直接的提升网页的访问速度。UglifyJS是一个Javascript开发的通用的语法分析、代码压缩、代码优化的一个工具包。UglifyJS是基于Nodejs环境开发,支持CommonJS模块系统的任意的Javascript平台。本工具基于UglifyJS2开发。

    javascript混淆压缩工具使用帮助:

    压缩器选项 Compressor options

    你要传入 --compress (-c)来启用压缩功能。你可以用逗号隔开选项。选项的形式为foo=bar,或者就foo(后者等同于你要设为true,相当于foo=true的缩写)。

    • sequences(默认true) -- 连续声明变量,用逗号隔开来。可以设置为正整数来指定连续声明的最大长度。如果设为true 表示默认200个,设为false0则禁用。 sequences至少要是2,1的话等同于true(即200)。默认的sequences设置有极小几率会导致压缩很慢,所以推荐设置成20或以下。
    • properties -- 用.来重写属性引用,例如foo["bar"] → foo.bar
    • dead_code -- 移除没被引用的代码
    • drop_debugger -- 移除 debugger;
    • unsafe (默认 false) -- 使用 "unsafe"转换 (下面详述)
    • unsafe_comps (默认 false) -- 保留<<=不被换成 >>=。假如某些运算对象是用getvalueOfobject得出的时候,转换可能会不安全,可能会引起运算对象的改变。此选项只有当 comparisonsunsafe_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 -- 当dowhilefor循环的判断条件可以确定是,对其进行优化。
    • 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/continue
    • join_vars -- 合并连续 var 声明
    • cascade -- 弱弱地优化一下连续声明, 将 x, x 转成 xx = something(), x 转成 x = something()
    • collapse_vars -- 当 varconst 单独使用时尽量合并
    • reduce_vars -- 优化某些变量实际上是按常量值来赋值、使用的情况。
    • warnings -- 当删除没有用处的代码时,显示警告
    • negate_iife -- 当立即执行函数(IIFE)的返回值没用时,取消之。避免代码生成器会插入括号。
    • pure_getters -- 默认是 false. 如果你传入true,UglifyJS会假设对象属性的引用(例如foo.barfoo["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 - 混淆在evalwith作用域出现的变量名(默认disabled)

    UglifyJS中文文档

    https://segmentfault.com/a/1190000008995453

    TAGS:混淆压缩 javascript代码

    暂无评论