使用UglifyJS合并/压缩JavaScript的方法

时间:2024-05-03 15:57:29 

build.js中的代码会去调用UglifyJS的接口函数以执行压缩任务。

1,去github下载最新的UglifyJS。两种方式下载,如果安装了git,进入git控制台使用如下命令
git clone git://github.com/mishoo/UglifyJS.git

或者使用http方式下载,点击zip下载。解压后其目录结构如下

使用UglifyJS合并/压缩JavaScript的方法

 

2,新建一个项目(文件夹)myApp,将uglify-js.js和lib目录拷贝到自己的项目中。如下

使用UglifyJS合并/压缩JavaScript的方法

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

使用UglifyJS合并/压缩JavaScript的方法

控制台输出了压缩后的代码。好了,就这么简单。
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

标签:UglifyJS,合并,压缩
0
投稿

猜你喜欢

  • 图片自适应宽度新解决方法

    2009-09-22 14:55:00
  • python实现查询IP地址所在地

    2021-09-08 17:18:43
  • python调用动态链接库的基本过程详解

    2023-05-31 13:24:00
  • python初学者,用python实现基本的学生管理系统(python3)代码实例

    2023-07-01 11:40:01
  • SQL左连接和右连接原理及实例解析

    2024-01-21 20:35:39
  • golang与pgsql交互的实现

    2024-05-25 15:11:52
  • Mysql的基础使用之MariaDB安装方法详解

    2024-01-14 15:03:46
  • 优化次数过多的循环

    2009-11-12 12:35:00
  • 将ASP纪录集输出成n列表格的方法

    2008-03-19 13:27:00
  • Python中的单行、多行、中文注释方法

    2022-03-21 21:56:38
  • python apscheduler cron定时任务触发接口自动化巡检过程

    2023-01-04 19:52:50
  • python实现巡检系统(solaris)示例

    2022-03-01 20:32:11
  • Python初识二叉树续之实战binarytree

    2021-04-05 22:22:51
  • Golang 错误捕获Panic与Recover的使用

    2024-02-07 20:15:42
  • Python使用Crypto库实现加密解密的示例详解

    2021-11-10 05:53:10
  • golang语言map全方位介绍

    2024-05-22 10:20:33
  • 一文带你梳理Python的中级知识

    2022-03-13 14:36:29
  • Python 确定多项式拟合/回归的阶数实例

    2023-08-26 23:54:58
  • 不到20行代码用Python做一个智能聊天机器人

    2021-07-21 08:43:40
  • PHP中的traits实现代码复用使用实例

    2023-11-22 04:27:55
  • asp之家 网络编程 m.aspxhome.com