首页
学习
活动
专区
圈层
工具
发布

工程化(8): JS 体积优化之代码压缩混淆的原理是什么?

---- 通过 AST 分析,根据一些策略,来生成一颗更小体积的 AST 并生成代码。现代前端工程中,一般使用 terser 进行压缩混淆 JS。...当我们把所有的空白符合注释都去掉之后,代码体积会得到减少。 「去掉多余字符之后,文件大小已经变为 30 Byte。」...压缩后代码如下: function sum(a,b){return a+b} 替换掉多余字符后会有什么问题产生呢? 「有,比如多行代码压缩到一行时要注意行尾分号。」...,当完成代码压缩 (compress) 时,代码的混淆 (mangle) 也捎带完成。...解析程序逻辑:合并声明以及布尔值简化 通过分析代码逻辑,可对代码改写为更精简的形式。

2.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS 图片压缩

    前言 说起图片压缩,大家想到的或者平时用到的很多工具都可以实现,例如,客户端类的有图片压缩工具 PPDuck3, JS 实现类的有插件 compression.js ,亦或是在线处理类的 OSS 上传,...文件上传后,在访问文件时中也有图片的压缩配置选项,不过,能不能自己撸一套 JS 实现的图片压缩代码呢?...压缩思路 涉及到 JS 的图片压缩,我的想法是需要用到 Canvas 的绘图能力,通过调整图片的分辨率或者绘图质量来达到图片压缩的效果,实现思路如下: 获取上传 Input 中的图片对象 File 将图片转换成...缺点:只有 jpeg 、webp 支持原图尺寸下图片质量的调整来达到压缩图片的效果,其他图片格式,仅能通过调节尺寸来实现 代码实现 代码稍微调整一下,下面开始具体分解一下代码的实现思路 Input 上传 File 处理 将 File 对象通过 FileReader 的 readAsDataURL 方法转换为

    34.5K21

    图片压缩原理

    前言 说起图片压缩,大家想到的或者平时用到的很多工具都可以实现,例如,客户端类的有图片压缩工具 PPDuck3, JS 实现类的有插件 compression.js ,亦或是在线处理类的 OSS 上传,...文件上传后,在访问文件时中也有图片的压缩配置选项,不过,能不能自己撸一套 JS 实现的图片压缩代码呢?...压缩思路 涉及到 JS 的图片压缩,我的想法是需要用到 Canvas 的绘图能力,通过调整图片的分辨率或者绘图质量来达到图片压缩的效果,实现思路如下: 获取上传 Input 中的图片对象 File 将图片转换成...缺点:只有 jpeg 、webp 支持原图尺寸下图片质量的调整来达到压缩图片的效果,其他图片格式,仅能通过调节尺寸来实现 代码实现 代码稍微调整一下,下面开始具体分解一下代码的实现思路 Input 上传 File 处理 将 File 对象通过 FileReader 的 readAsDataURL 方法转换为

    6.3K31

    使用uglifyjs压缩js

    在做的web项目上线时,我们需要对js文件进行压缩,以减小文件的体积,加快加载速度,提高响应时间。下面我来介绍一个js压缩工具:uglifyjs。...-b,--beautify 美化代码格式的参数 -m,--mangle 改变变量名称(ex:在一些例如YUI Compressor压缩完的代码后你可以看到)a,b,c,d,e,f之类的变量...--comments 用来控制注释的代码的 如果压缩的时候想要保留版权信息,可以如下使用: uglifyjs main.js --comments -m -o main-min.js 当然,...uglifyjs压缩批处理 我们不可能每次都打开cmd去键入压缩执行代码,容易写错不说(如上面那个结果图),还耗时,想想都会让人疯掉。...完整代码如下: @echo off :: 设置压缩JS文件的根目录,脚本会自动按树层次查找和压缩所有的JS SET JSFOLDER=C:\Users\Administrator\Desktop\formini

    7.3K20

    JS压缩(javascript minify)

    什么是js压缩?js代码压缩,简称js压缩,英文叫作:javascript minifyjs压缩的作用js压缩主要有两个作用:1、压缩代码体积主要目的是提高代码传输效率。...2、增强代码安全性可以说,JS压缩也是一种JS混淆加密。你没听错,JS压缩,可以降底代码可读性。对于既要代码有一定安全性、又要代码体积小的需求而言,JS压缩,是个折中且不错的方案。...为什么压缩代码能具有混淆的效果,下面会讲。如何进行JS压缩当然是使用工具了。国内国外,在线的JS压缩小工具很多,一搜一大把,但质量差别很大。...众所周知,JShaman是国内JS混淆加密界的知名厂商。所以他们出品的JS压缩工具,品质信的过。下面简单使用教学:主要看有哪些功能,再看压缩率。功能配置:1、去除未使用的函数。...10、去除代码中的回车、换行,将代码压缩成一行。配置选项很多,但起用起来很简便,一般用默认配置就行。

    55110

    Redis 内存压缩原理

    quicklist set hashtable intset hash ziplist hashtable zset(sortedset) ziplist skiplist 本文接下来将详细说明各种压缩编码的原理以及编码决定规则...ziplist 存储为一段裸二进制数据(unsigned char *), 可以看到源代码中大量使用宏进行定义,虽然节省了大量内存但是代码可读性较低。...压缩中间节点 对于一个很长的列表而言,最常使用的是其两端的数据,中间数据被访问的概率较低。因此,quicklist 允许将中间的节点使用 LZF 算法进行压缩以节省内存。...list-compress-depth 表示quicklist两端不被压缩的节点个数: 0: 表示都不压缩。这是Redis的默认值。...1: 表示quicklist两端各有1个节点不压缩,中间的节点压缩。 2: 表示quicklist两端各有2个节点不压缩,中间的节点压缩。

    1.4K30

    详解 JS 压缩图片

    插播一下,本文案例已整理成插件,已上传 npm ,可通过 npm install js-image-compressor -D 安装使用,可以从 github 下载。...JavaScript 操作压缩图片原理不难,已有成熟 API,然而在实际输出压缩后结果却总有意外,有些图片竟会越压缩越大,加之终端(手机)类型众多,有些手机压缩图片甚至变黑。 ?...但只要有代码在引用对象 URL,内存就不会释放。要手工释放内存,可以把对象 URL 传给 window.revokeObjectURL()。...options.convertSize && options.mimeType === 'image/png') { options.mimeType = 'image/jpeg'; } // 省略一些代码...将改进版图片压缩整理成插件,已上传 npm ,可通过 npm install js-image-compressor -D 安装使用,可以从 github 下载。 整理匆忙,如有问题欢迎大家指正,完~

    16.4K31

    JS代码压缩,减小体积、提高执行效率,真实有效!

    JS压缩,可以有效减小代码体积、提高代码执行效率!具体压缩率有多高?能提升多少执行效率呢?本文用实测的方式给出答案。一、JS压缩工具这里使用的是一款在线使用的JS压缩工具,如下图:二、如何使用?...该工具使用很简单:输入JS代码、执行压缩、得到压缩后的JS代码。有配置选项,一般用默认就可以了,如下图:三、实测压缩效果下 面,通过几个实例,测试压缩率、执行效率。...:0.3%测试3用AI写一段代码:JS代码:// ============================================================// JS代码压缩测试Demo...__demo={calc,dog,processed,status,counter};}最后,再实测一下执行效率:注:使用上面第三次示例压缩前后的JS代码;测试环境:NodeJS。...第一次测试:压缩前的代码:压缩后的代码:第二次测试:压缩前的代码:压缩后的代码:第三次测试:压缩前的代码:压缩后的代码:第四次测试(在浏览器中):由测试可知,JS压缩可减小代码体积、提升执行效率,真实有效

    18210

    JavaScript代码压缩细节

    前言 对于Javascript来说,提高网络下载的性能最直接的方法就是把JS文件体积减小。...为了方便理解和对比,本文会给出压缩前后代码作为参考,但压缩后的代码仍会换行,变量名字不做混淆处理,同时一个压缩规则的例子会尽量不混其它压缩策略进去。 1....的压缩 对a>=b取非可以得到a代码,那就将这个取非的表达式换成转换后的表达式。 压缩前 !(a>=b) !!!a 12 !...  function B(){ }   return false;   var a = 1; } 规则6.4 合并块末尾的return语句及其前边的多条表达式语句 其实这条规则看起来并不会使最后生成的代码缩小...C){   D(); } 规则7.3 尝试反转if/else分支,看看生成代码是否更短 尝试对if条件取非,如果能得到更短的代码,那就反转if/else分支。 压缩前 if (!

    1.7K20

    PNG 图片压缩原理解析

    什么样的PNG图片更适合压缩 常规的png图片,颜色越单一,颜色值越少,压缩率就越大,比如下面这张图: ?...PNG的压缩 PNG图片的压缩,分两个阶段: 预解析(Prediction):这个阶段就是对png图片进行一个预处理,处理后让它更方便后续的压缩。...这就是为什么渐变色图片、颜色值变化不大并且颜色单一的图片更容易压缩的原理。 差分编码的目的,就是尽可能的将png图片数据值转换成一组重复的、低的值,这样的值更容易被压缩。...压缩(Compression) 压缩阶段会将预处理阶段得到的结果进行Deflate压缩,它由 Huffman 编码 和 LZ77压缩构成。...如前面所说,Deflate压缩会标记图片所有的重复数据,并记录数据特征和结构,会得到一个压缩比最大的png图片 编码数据。 Deflate是一种压缩数据流的算法. 任何需要流式压缩的地方都可以用。

    2.4K30
    领券