build.js中的代码会去调用UglifyJS的接口函数以执行压缩任务。
1,去github下载最新的UglifyJS。两种方式下载,如果安装了git,进入git控制台使用如下命令
git clone git://github.com/mishoo/UglifyJS.git
或者使用http方式下载,点击zip下载。解压后其目录结构如下
2,新建一个项目(文件夹)myApp,将uglify-js.js和lib目录拷贝到自己的项目中。如下
3,在myApp中新建一个compress.js,内容如下
复制代码 代码如下:
var fs = require('fs');
var jsp = require("./uglify-js").parser;
var pro = require("./uglify-js").uglify;
var origCode = "var abc = function(){ var one = 5; return one;}";
var ast = jsp.parse(origCode); // parse code and get the initial AST
ast = pro.ast_mangle(ast); // get a new AST with mangled names
ast = pro.ast_squeeze(ast); // get an AST with compression optimizations
var finalCode = pro.gen_code(ast); // compressed code here
console.log(finalCode);
这段代码的大概意思是取fs模块,它是node的文件模块。 接着取UglifyJS的两个模块。后面就是UglifyJS的压缩流程了。
4,打开命令行,执行compress.js
控制台输出了压缩后的代码。好了,就这么简单。
5,既然在node环境下,当然可以写一个函数直接读取源文件,压缩后输出到指定的目录。将以上代码封装到一个函数中,如下
复制代码 代码如下:
// 读取一个文件,压缩之
function buildOne(flieIn, fileOut) {
var origCode = fs.readFileSync(flieIn, 'utf8');
var ast = jsp.parse(origCode);
ast = pro.ast_mangle(ast);
ast = pro.ast_squeeze(ast);
var finalCode = pro.gen_code(ast);
fs.writeFileSync(fileOut, finalCode, 'utf8');
}
将我写的ajax-1.0.js压缩,输出到myApp目录中
复制代码 代码如下:buildOne('ajax-1.0.js', 'ajax-min.js');
示例代码UglifyJS_test
相关推荐:
Python 开发Activex组件方法
XHTML下,JS浮动代码失效的问题
asp.net 转换人民币大小金额
JavaScript 控制文本框的值连续加减
asp 判断上传文件中是否存在危险代码
扩展jQuery 键盘事件的几个基本方法
Oracle 子程序参数模式,IN,OUT,NOCOPY
Flex3 界面布局教程 第二篇
js replace正则相关的诡异问题
AJAX自学练习 无刷新从数据库后台取数据显示
单选按钮决定链接的网址
读大数据量的XML文件的读取问题
AJAX 自学练习 请求与显示
ORACLE常用数值函数、转换函数、字符串函数
Linux 操作系统下Web服务器配置详细介绍
Oracle字符集修改查看方法
网页自动跳转代码收集
最近脚本之家网站无法访问的公告20090923
Asp.net中使用Sqlite数据库的方法
Mootools 1.2 手风琴(Accordion)教程
利用JavaScript更改input中radio和checkbox样式
php self,$this,const,static,->的使用
ASP.NET MVC学习笔记
Javascript createElement和innerHTML增加页面元素的性能对比
Oracle 存储过程加密方法
中文用户名的js检验正则
javascript实现的距离现在多长时间后的一个格式化的日期
CSS 伪类实现的鼠标滑动图片链接
PHP 处理图片的类实现代码
仿打字特效的JS逐字出现的信息文字
为javascript添加String.Format方法
oracle 在一个存储过程中调用另一个返回游标的存储过程
javascript 面向对象编程 function也是类
颈椎残废记 站长兄弟请注意保护好自己的身体
页面中js执行顺序
javascript 设置文本框中焦点的位置
jQuery 使用手册(四)
SQL 随机查询 包括(sqlserver,mysql,access等)
一个特殊的排序需求的javascript实现代码
javascript currying返回函数的函数
MooTools 1.2中的Drag.Move来实现拖放
兼容多浏览器的JS 浮动广告[推荐]
JQuery SELECT单选模拟jQuery.select.js
Jquery 弹出层插件实现代码
cnblogs csdn 代码运行框实现代码
oracle 更改数据库名的方法
随日期每天自动变换的文本的js特效
PHP小程序自动提交到自助友情连接
union组合结果集时的order问题
js css样式操作代码(批量操作)