安装:

1. 安装 node.js 环境 (这个不用我教了吧,网上教程一大堆哦。)

2. 进入 https://github.com/mishoo/UglifyJS  右上角 “Download” ZIP下载整个包。

3. 解压打开 UglifyJS/bin/uglifyjs

4. 找到

global.sys = require(/^v0\.[012]/.test(process.version) ? "sys" : "util");
var fs = require("fs");
var uglify = require("uglify-js"), // symlink ~/.node_libraries/uglify-js.js to ../uglify-js.js
    jsp = uglify.parser,

pro = uglify.uglify;

替换为

global.sys = require(/^v0\.[012]/.test(process.version) ? "sys" : "util");

var fs = require("fs");
require.paths.unshift(__dirname + "/../");
var uglify = require("index"),
jsp = uglify.parser,
pro = uglify.uglify;
 
使用:
 ./uglifyjs 1.js 2.js 把 1.js 压缩后的代码保存到 2.js
 
命令行说明:
uglifyjs [ 选项... ] [ 文件 ]
文件参数应该放在选项后面,uglifyjs 会读取文件中的javascript代码进行处理。
如果你不指定输出的文件名,那么他会把处理后的内容输出到命令行中。
例:  uglifyjs 1.js 2.js   会创建一个 2.js 文件把 1.js处理完毕的内容输入到这里
例: uglifyjs 1.js        会读取1.js内容,并把结果输出到命令行中。
 
支持的选项:
-b or --beautify — 参数 -b 或者 --beautify 用于美化(格式化)代码。美化之前会压缩代码(未验证。)
-i N or --indent N — 缩进级别空格数
例:uglifyjs -b 1.js 2.js  会把1.js的内容格式后输出到2.js
-q or --quote-keys — quote keys in literal objects (by default, only keys that cannot be identifier names will be quotes).
-nm or --no-mangle — 变量名不缩短,意味着不会把代码的变量名缩短为 abcdefg 
-ns or --no-squeeze — 不使用ast_squeeze()(可以使各种优化之后的代码更小,更具有可读性。)
-mt or --mangle-toplevel — mangle names in the toplevel scope too (by default we don’t do this).
--no-seqs — 当ast_squeeze()被调用的时候(除非你添加了--no-squeeze 参数才不会被调用)它将减少在一个代码块中重复声明的行。例如:“a = 10; b = 20; foo();”将被重写为“a=10,b=20,foo();”。在各种场合,这将允许我们丢弃代码块中的括号(在一些语句块变成一个独立的声明行之后)。这是默认的,因为经我们测试,它似乎更安全并且能节省几百bytes,但加上--no-seqs 后将被禁止。
--no-dead-code — 默认情况下,UglifyJS将会删除代码中明显无法访问的语句(如 return , throw , break 或者continue语句 ,以及一些不是函数/变量的的声明)。通过这个选项可以禁用掉这个优化功能。
-nc or --no-copyright — 默认情况下,uglifyjs将在生成的代码中保留初始的一些标记(假设版权信息等)。如果你设置这个参数将被禁止。
-o filename or --output filename — 将结果输出到一个指定文件名的文件中。如果没有这个参数,结果将会被输出到命令行
-
-overwrite — 如果代码是从一个文件中读取的(不是直接标准输入的)并且使用了--overwrite参数,那么结果也将会被写进相同的文件中去。
 
--ast — pass this if you want to get the Abstract Syntax Tree instead of JavaScript as output. Useful for debugging or learning more about the internals.
 
--ast — pass 如果你要获取一个用来取代javascript输出的抽象语法树,这些参数会在你进行调试或学习内部组件时很有用。
              
-v or --verbose — output some notes on STDERR (for now just how long each operation takes).
 
-v or --verbose — output 一些标准错误提示(显示每一次花费多久)
 
--extra — enable additional optimizations that have not yet been extensively tested. These might, or might not, break your code. If you find a bug using this option, please report a test case.
当你发现BUG时你可以增加一个中断点用来对还没有彻底的测试的代码进行优化,你可以使用这个选项来生成一个测试用例。
 --extra — enable 
 
--unsafe — enable other additional optimizations that are known to be unsafe in some contrived situations, but could still be generally useful. For now only this:
foo.toString() ==> foo+””
想foo.toString() 这种用法 也是可行的,但是存在一些人為的不安全的情况,这事也需要添加一些优化比如:  foo+””
 
--max-line-len (default 32K characters) — add a newline after around 32K characters. I’ve seen both FF and Chrome croak when all the code was on a single line of around 670K. Pass –max-line-len 0 to disable this safety feature.
在超过大概32K字节的时候你要增加一行,我有发现过在火狐和chorme下档代码一行超过670K的时候它会发出报警声。通过–max-line-len 0 去静止这个安全属性
 
--reserved-names — some libraries rely on certain names to be used, as pointed out in issue #92 and #81, so this option allow you to exclude such names from the mangler. For example, to keep names require and $super intact you’d specify –reserved-names “require,$super”.
--reserved-names — 些类库会依赖于特定的名称去使用,比如:#92 和#81 所以这个选项允许你去排除一些关键字。
 
 
 

javascript 代码优化工具 UglifyJS的更多相关文章

  1. JavaScript开发工具大全

    译者按: 最全的JavaScript开发工具列表,总有一款适合你! 原文: THE ULTIMATE LIST OF JAVASCRIPT TOOLS 译者: Fundebug 为了保证可读性,本文采 ...

  2. 实例演示 kino.razor (前端 Javascript 模板工具,Razor 风格)的使用

    前言 对于习惯了 ASP.NET MVC Razor 模板引擎的人来说,比如我,一直在寻找前端 Javascript 端的 Razor 模板工具.这之前,我也了解到很多Javascript 端的模板工 ...

  3. JavaScript时间工具类

    /** * JavaScript日期工具类 * @author ZhangLp */ /** * 获取当前月的第一天 */ function getCurrentMonthFirst(){ var d ...

  4. JavaScript 开发工具webstrom使用指南

    本文给大家推荐了一款非常热门的javascript开发工具webstrom,着重介绍了webstrom的特色功能.设置技巧.使用心得以及快捷键汇总,非常的全面. 看到网上一篇介绍webstrom的文章 ...

  5. JavaScript开发工具简明历史

    译者按: JavaScript开发要用到的工具越来越多,越来越复杂,为什么呢?你真的弄明白了吗? 原文: Modern JavaScript Explained For Dinosaurs 为了保证可 ...

  6. Tippy.js – 轻量的 Javascript Tooltip 工具库

    工具提示(Tooltip)在网站中的一个小功能,但却有很重要的作用,常用于显示一些温馨的提示信息.如果网站中的工具提示功能做得非常有创意的话能够加深用户对网站印象.Tippy.js 是一款帮助你快速创 ...

  7. javascript常用工具类整理(copy)

    JavaScript常用工具类 类型 日期 数组 字符串 数字 网络请求 节点 存储 其他 1.类型 isString (o) { //是否字符串 return Object.prototype.to ...

  8. Lodash JavaScript 实用工具库

    地址:https://www.lodashjs.com/ Lodash 是一个一致性.模块化.高性能的 JavaScript 实用工具库.

  9. Web前端开发神器--WebStorm(JavaScript 开发工具) 8.0.3 中文汉化破解版

    WebStorm(JavaScript 开发工具) 8.0.3 中文汉化破解版 http://www.jb51.net/softs/171905.html WebStorm 是jetbrains公司旗 ...

随机推荐

  1. Mac OS X 中使用SAP GUI的方法

    下载sap gui for mac 730 解压后 安装之前需要去oracle 官网下载jdk 6 然后运行 安装完成后配置登陆端 新建连接时,只需要配置Advanced 页签:勾选Expert Mo ...

  2. Boxes in a Line

    Boxes in a Line You have n boxes in a line on the table numbered 1 . . . n from left to right. Your ...

  3. Starship Troopers

    Problem Description You, the leader of Starship Troopers, are sent to destroy a base of the bugs. Th ...

  4. Java设计模式11:常用设计模式之代理模式(结构型模式)

    1. Java之代理模式(Proxy Pattern) (1)概述: 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问. 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象 ...

  5. AspxGridView整理文档【转】

    ASPxGridView属性:概述设置(Settings) <Settings GridLines="Vertical" : 网格样式 Vertical, Both, Non ...

  6. 标签切换JS代码

    //标签切换 var nav = $('.index-nav'); var content = $('.index-nav-content li'); function hoverNav ($eleA ...

  7. python django第二弹

    每天晚上应该就这样坐着,然后把每天的东西做个总结,或大或小,有的人可能愿意把自己的东西保留在草稿箱,想想我还是把他写出来吧,前几次我发现又遇到了之前遇到的简单的问题,翻看自己之前写的几篇小日记,可以很 ...

  8. 【转】测试用例设计——WEB通用测试用例

    现在项目做完了,我觉得还是有必要总结一下,学习到的内容.毕竟有总结才能有提高嘛!总结一下通用的东西,不管什么项目基本都可能会遇到,有写地方也有重复的或者有的是按照个人的习惯来总结的不一定都对,有不对的 ...

  9. Ajax返回xml类型数据

    ajax可以返回文本类型数据和xml类型数据,xml是计算机通用语言 可以使用js解析返回xml类型数据的dom对象 前端页面 <!doctype html> <html lang= ...

  10. 初学JSP+Servlet常见的错误

    web编程中常见的错误: 一.404(要访问的资源没有找到) 1.web程序有没有部署(将项目到tomcat中) 2.url有没有写错(包括大小写,包括项目有没有重命名) 3.有没有将jsp/html ...