JavaScript 代码压缩工具小结


Posted in Javascript onFebruary 27, 2012

UglifyJS

UglifyJS是构建于nodeJS服务器端之上的一个代码压缩工具,目前jQuery使用它来压缩,压缩效果比较好。

GitHub主页:http://github.com/mishoo/UglifyJS/

在线使用:http://marijnhaverbeke.nl/uglifyjs

使用方法:

  1. 从http://nodejs.org下载nodejs,用到的是node.exe
  2. 再从UglifyJS的GitHub主页下载它的最新版本
  3. 复制node.exe到UglifyJS的bin目录
  4. 修改bin\uglifyjs,把require("uglify-js")改成require("../uglify-js"),假如提示找不到uglify-js的话
  5. 运行node uglifyjs ?o fancyValidate.min.js fancyValidate.js

注意要先指定-o参数,且-o参数后面紧跟的是压缩后的文件名,最后才是源文件。

如果嫌下载麻烦的话,直接使用它的在线版本。

Microsoft Ajax Minifier
Microsoft Ajax Minifier是微软出品的代码压缩工具,支持JavaScript和css代码压缩。

官方主页:http://ajaxmin.codeplex.com/

下载并安装,使用方法也很简单:ajaxmin fancyValidate.js ?o fancyValidate.min.js

更多的参数使用方法请看官方的说明文档:http://ajaxmin.codeplex.com/wikipage?title=Command-Line%20Switches

Google Closure Compiler

谷歌出品的代码压缩工具,需要JRE(从http://www.java.com/zh_CN/download/下载)的支持

官方主页:http://code.google.com/p/closure-compiler/

先安装好JRE,简单使用:java -jar compiler.jar --js hello.js --js_output_file hello-compiled.js

更多的参数说明请看相关的文档:https://developers.google.com/closure/compiler/docs/overview

YUI Compressor

Yahoo!UI团队出品的代码压缩工具,支持JavaScript和css代码压缩,同样也需要JRE支持。

官方主页:http://developer.yahoo.com/yui/compressor/

GitHub主页:https://github.com/yui/yuicompressor

从http://yuilibrary.com/download/yuicompressor/下载它,简单使用:java -jar yuicompressor-2.4.7.jar myfile.js -o myfile-min.js

更多参数的说明请看官方主页或https://github.com/yui/yuicompressor/blob/master/doc/README

Packer

著名的js大牛Dean Edwards写的压缩工具,压缩比率也比较高。

官方主页:http://dean.edwards.name/packer/

时间比较久远,但依然好用,也提供了不少参数设置。

JSMIN

与Packer差不多时代,仅对注释、空白等进行压缩。

官方主页:http://www.crockford.com/javascript/jsmin

提供了一个DOS命令行版本:http://www.crockford.com/javascript/jsmin.zip

简单使用:jsmin <fancyValidate.js> fancyValidate.min.js

结尾

就简单介绍到这里,另外在进行压缩之前最好能够使用JSLint(http://www.jslint.com/)检查代码,否则很可能导致压缩失败。

作者:?逶

Javascript 相关文章推荐
JavaScript使用cookie
Feb 02 Javascript
判断用户是否在线的代码
Mar 05 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
Apr 06 Javascript
javascript模拟命名空间
Apr 17 Javascript
简介JavaScript中search()方法的使用
Jun 06 Javascript
Bootstrap每天必学之按钮(Button)插件
Apr 25 Javascript
基于Jquery插件实现跨域异步上传文件功能
Apr 26 Javascript
浅谈js中function的参数默认值
Feb 20 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
Mar 08 Javascript
Echarts之悬浮框中的数据排序问题
Nov 08 Javascript
JS实现查找数组中对象的属性值是否存在示例
May 24 Javascript
微信小程序实现同时上传多张图片
Feb 03 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
Feb 27 #Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
Feb 27 #Javascript
jQuery学习笔记之控制页面实现代码
Feb 27 #Javascript
JQuery获取浏览器窗口内容部分高度的代码
Feb 24 #Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
Feb 23 #Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
Feb 23 #Javascript
js前台判断开始时间是否小于结束时间
Feb 23 #Javascript
You might like
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
JQuery 浮动导航栏实现代码
2009/08/27 Javascript
JavaScript toFixed() 方法
2010/04/15 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
jQuery图片特效插件Revealing实现拉伸放大
2015/04/22 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
JS创建Tag标签的方法详解
2017/06/09 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
python字典基本操作实例分析
2015/07/11 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
简单了解python列表和元组的区别
2020/05/14 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
python 实现&quot;神经衰弱&quot;翻牌游戏
2020/11/09 Python
高三历史教学反思
2014/01/09 职场文书
安全检查管理制度
2014/02/02 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
幼儿教师辞职信
2015/02/27 职场文书
2015年共青团工作总结
2015/05/15 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
一文读懂navicat for mysql基础知识
2021/05/31 MySQL
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL
利用Apache Common将java对象池化的问题
2022/06/16 Servers