uglifyjs 压缩

UglifyJS is widely known as the most performant and effective JavaScript minifier available.  UglifyJS' default minification with --compress is nice but it doesn't do the full job.  There are a number of additional directives for the compress option, including:

UglifyJS是众所周知的最高效,最有效JavaScript压缩程序。 UglifyJS使用--compress的默认缩小效果很好,但是并不能完成全部工作。 compress选项还有许多其他指令,包括:

  • sequences -- join consecutive simple statements using the comma operator

    sequences -使用逗号运算符连接连续的简单语句

  • properties -- rewrite property access using the dot notation, for example foo["bar"] → foo.bar

    properties使用点表示法重写属性访问,例如foo["bar"] → foo.bar

  • dead_code -- remove unreachable code

    dead_code删除无法访问的代码

  • drop_debugger -- remove debugger; statements

    drop_debugger删除debugger; 陈述

  • unsafe (default: false) -- apply "unsafe" transformations (discussion below)

    unsafe (默认值:false)-应用“不安全”转换(以下讨论)

  • conditionals -- apply optimizations for if-s and conditional expressions

    conditionals -对if -s和条件表达式进行优化

  • comparisons -- apply certain optimizations to binary nodes, for example: !(a <= b) → a > b (only when unsafe), attempts to negate binary nodes, e.g. a = !b && !c && !d && !e → a=!(b||c||d||e) etc.

    comparisons -对二进制节点进行某些优化,例如: !(a <= b) → a > b (仅当unsafe ),尝试取反二进制节点,例如a = !b && !c && !d && !e → a=!(b||c||d||e)等。

  • evaluate -- attempt to evaluate constant expressions

    evaluate -尝试评估常数表达式

  • booleans -- various optimizations for boolean context, for example !!a ? b : c → a ? b : c

    booleans -布尔值上下文的各种优化,例如!!a ? b : c → a ? b : c !!a ? b : c → a ? b : c

  • loops -- optimizations for do, while and for loops when we can statically determine the condition

    loops -当可以静态确定条件时对dowhilefor循环进行优化

  • unused -- drop unreferenced functions and variables

    unused -删除未引用的函数和变量

  • hoist_funs -- hoist function declarations

    hoist_funs提升函数声明

  • hoist_vars (default: false) -- hoist var declarations (this is false by default because it seems to increase the size of the output in general)

    hoist_vars (默认:false)-提升var声明(默认情况下为false ,因为它通常会增加输出的大小)

  • if_return -- optimizations for if/return and if/continue

    if_return优化if / return和if / continue

  • join_vars -- join consecutive var statements

    join_vars连接连续的var语句

  • cascade -- small optimization for sequences, transform x, x into x and x = something(), x into x = something()

    cascade -对序列进行小的优化,将x, x转换为xx = something(), x转换为x = something()

  • warnings -- display warnings when dropping unreachable code or unused declarations etc.

    warnings -丢弃无法访问的代码或未使用的声明等时显示警告。

  • negate_iife -- negate "Immediately-Called Function Expressions" where the return value is discarded, to avoid the parens that the code generator would insert.

    negate_iife -否定“立即调用的函数表达式”,在该表达式中丢弃返回值,以避免代码生成器插入的括号。

  • pure_getters -- the default is false. If you pass true for this, UglifyJS will assume that object property access (e.g. foo.bar or foo["bar"]) doesn't have any side effects.

    pure_getters默认为false 。 如果为此传递true ,则UglifyJS将假定对象属性访问(例如foo.barfoo["bar"] )没有任何副作用。

  • pure_funcs -- default null. You can pass an array of names and UglifyJS will assume that those functions do not produce side effects. DANGER: will not check if the name is redefined in scope. An example case here, for instance var q = Math.floor(a/b). If variable q is not used elsewhere, UglifyJS will drop it, but will still keep the Math.floor(a/b), not knowing what it does. You can pass pure_funcs: [ 'Math.floor' ] to let it know that this function won't produce any side effect, in which case the whole statement would get discarded. The current implementation adds some overhead (compression will be slower).

    pure_funcs默认为null 您可以传递一个名称数组,UglifyJS会假定这些函数不会产生副作用。 危险:将不检查名称是否在范围内重新定义。 这里有一个示例案例,例如var q = Math.floor(a/b) 。 如果在其他地方未使用变量q ,则UglifyJS会将其删除,但仍会保留Math.floor(a/b) ,而不知道它的作用。 您可以传递pure_funcs: [ 'Math.floor' ]使其知道该函数不会产生任何副作用,在这种情况下,整个语句将被丢弃。 当前的实现增加了一些开销(压缩会更慢)。

  • drop_console -- default false. Pass true to discard calls to console.* functions.

    drop_console默认为false 。 传递true以放弃对console.*函数的调用。

So instead of simply doing a basic compress, squeeze the hell out of your JavaScript files by altering booleans, removing unneeded var uses, axing unreachable code, and much more.  Here's an example of such a case using the NodeJS API:

因此,除了简单地进行基本压缩之外,还可以通过更改布尔值 ,删除不需要的var使用, 更改无法访问的代码等等来将JavaScript压缩出地狱。 这是使用NodeJS API的这种情况的示例:


var UglifyJS = require('uglify-js');
var fs = require('fs');
var result = UglifyJS.minify('site.js', {
mangle: true,
compress: {
sequences: true,
dead_code: true,
conditionals: true,
booleans: true,
unused: true,
if_return: true,
join_vars: true,
drop_console: true
}
});
fs.writeFileSync('site.min.js', result.code);

You can pass those compression values via command line as well.  This post isn't meant to be groundbreaking but more to raise awareness that simply using --compress doesn't optimize minification anywhere near potential.  If you're going to minify and compress your JavaScript, go all out!

您也可以通过命令行传递这些压缩值。 这篇文章并不是开创性的,它的目的还在于提高人们的意识,即仅使用--compress并不能在接近潜力的任何地方优化缩小效果。 如果您要缩小和压缩JavaScript,请全力以赴!

翻译自: https://davidwalsh.name/compress-uglify

uglifyjs 压缩


http://www.taodudu.cc/news/show-3715418.html

相关文章:

  • go教程
  • 熬夜整理,从书籍到视频!最全的Go语言教程来了,快来收藏!
  • Golang系列之快速入门教程
  • 0. Go语言学习/Go语言教程
  • Go Protobuf 教程
  • Go语言学习教程(一)
  • 从书籍到视频!最全的go语言教程来了,快来收藏!提速10倍GO语言开发实战内容...
  • golang基础入门教程
  • vscode调试Go语言(简明教程)
  • BaiduPCS-Go教程
  • Golang 教程
  • golang c 语言教程中文,Go 语言教程实战
  • Go语言教程
  • 教程:Go入门
  • GO语言入门学习(超详细的教程)-01
  • 最全的Go开发教程,超详细哦
  • OSSIM安装
  • ossim监控mysql_OSSIM中配置网络资产监控
  • Ossim java_日志收集关于OSSIM和ELK?
  • 部署Ossim
  • OSSIM的名词解释
  • ossim5.0安装
  • OSSIM开源安全信息管理系统(十)
  • ossim mysql密码_OSSIM手工安装配置指南.pdf
  • 基于OSSIM系统的APT攻击检测实践
  • OSSIM开源安全信息管理系统(九)
  • OSSIM开源安全信息管理系统(十四)
  • ossim监控mysql_Ossim系统常见测试方法
  • OSSIM总体介绍
  • OSSIM 介绍

uglifyjs 压缩_使用UglifyJS更好地压缩相关推荐

  1. java blob压缩_如何从Oracle中用Java压缩的BLOB列中提取XML文档

    我在Oracle 11G(11.1)中有一个表,它有一个包含XML文档的BLOB列. XML文档已使用Java程序写入表中,并已使用java.util.zip平减器进行序列化和压缩. 有没有简单的方法 ...

  2. python gif压缩_实用性视频转gif,压缩等常用文件工具处理及转换(含自写python工具)...

    本文包含一些实用性的工具的推荐使用,和利用python去写一些实用性工具,我会把类似于像视频转换,pdf压缩啊,统统的在这里做一个收集,感兴趣的可以收藏和关注我, 背景: 大概我写<androi ...

  3. api 数据gzip压缩_如何使用GZip和Jersey压缩Java REST API中的响应

    api 数据gzip压缩 在某些情况下,您的REST api会提供非常长的响应,我们都知道移动设备/网络上的传输速度和带宽仍然非常重要. 我认为这是开发支持移动应用程序的REST api时需要解决的第 ...

  4. java tiff 压缩_使用Java ImageIO进行Tiff压缩

    我在将png转换为tiff时遇到问题.转换很顺利,但图像很大.我认为问题是我没有正确地进行压缩?任何人都有任何建议? 这是代码示例 public static void test() throws I ...

  5. 怎么把图片压缩到1m?如何将图片压缩到1m以内?

    不管是制作图片还是拍摄出的照片,在使用较高像素的时候,生成的图片文件都非常的大,有些时候无法上传到平台上使用,那么怎样将缩小图片的大小呢?图片压缩是常用的一个方法,通过使用图片压缩器https://w ...

  6. 利用html-minifier和uglify-js对前端HTML/CSS/JS文件进行压缩

    利用html-minifier和uglify-js对前端HTML/CSS/JS文件进行压缩 前言:最近项目组项目接近完工,因为是个网站改造项目,大多数页面都是静态页面,前端开发并没有使用框架或工程化的 ...

  7. webpack 合并压缩_极客起源 - geekori.com - 问题详情 - webpack如何打包压缩jquery 插件?...

    感谢大家的回答,自己解决了.这里将解决方案贴出来: 1.首先 webpack.config.js做如下配置 module.exports 部分 entry:  __dirname + "/m ...

  8. labview霍夫曼编码_哈夫曼编解码压缩解压文件—C++实现

    前言 哈夫曼编码是一种贪心算法和二叉树结合的字符编码方式,具有广泛的应用背景,最直观的是文件压缩.本文主要讲述如何用哈夫曼编解码实现文件的压缩和解压,并给出代码实现. 哈夫曼编码的概念 哈夫曼树又称作 ...

  9. 如何更高效地压缩时序数据?基于深度强化学习的探索

    简介: 随着移动互联网.IoT.5G 等的应用和普及,一步一步地我们走进了数字经济时代.随之而来的海量数据将是一种客观的存在,并发挥出越来越重要的作用.时序数据是海量数据中的一个重要组成部分,除了挖掘 ...

最新文章

  1. @Slf4j注解介绍
  2. SD-WAN的四个价值—Vecloud微云
  3. 【Cocosd2d实例教程二】地图编辑器Tiled的安装使用
  4. 有赞统一日志平台初探
  5. java多线程notifyall_Java多线程:线程状态以及wait(), notify(), notifyAll()
  6. servlet获取相对路径 绝对路径
  7. ubuntu 安装PCL
  8. Arcgis创建SDE_Geometry、SDO_Geometry的区别
  9. 华硕获奖方案-构建海量数据处理性能的医院集群系统
  10. Flutter TextField 去掉下划线
  11. jar包打包成exe安装包
  12. 《Spring Boot极简教程》第1章 Spring Boot史前简述
  13. 12306网站 =≈=泄露用户信息解读之撞库
  14. Java——获取上传的pdf页数
  15. jQuery---什么是jQuery
  16. (附源码)ssm大学校园慈善拍卖网站的设计与实现 毕业设计250910
  17. 【GitHub学生包】2022年12月GitHub学生包最新申请教程 18次认证失败的经验之谈
  18. css实现1px的几种办法
  19. 【热点解读】冬奥会上的中国元素
  20. pytorch实战(四)——模型的保存与读取

热门文章

  1. 计算机科学的顶会 lics,贾晓东博士在顶级国际会议LICS2021发表科研成果
  2. 无线蓝牙运动耳机什么牌子好,值得参考的六款运动耳机
  3. Isotonic Regressio
  4. UNITY性能优化✨ProtoBuf 在 Unity 中的详细使用教程
  5. 学生邮箱添加到macOS上的outlook邮箱客户端里。
  6. Qt “error: C2065: “xxx”: 未声明的标识符”的问题
  7. 高效利器!站群文章采集器让你轻松搞定内容收集
  8. html h1标签字体颜色css,你可能不知道的h1标签美化技巧
  9. 马云的感恩故事:善意,成就美好或传奇
  10. indesign2019怎么存低版本_高版本的InDesign文档怎样存储为早期版本