Node.js环境下使用UglifyJS压缩JavaScript代码的完整指南
本文详细介绍如何在Node.js环境中使用UglifyJS对JavaScript代码进行压缩与混淆。内容涵盖从GitHub获取源码、配置项目依赖,到编写compress.js脚本执行解析、变量名混淆及代码生成的具体步骤。此外,还提供了一个封装好的buildOne函数示例,演示如何批量读取源文件并将压缩结果输出至指定目录,帮助开发者实现自动化构建流程。
UglifyJS压缩JavaScript代码基础教程
build.js脚本通过调用UglifyJS提供的接口函数来执行代码压缩任务。
获取与配置UglifyJS源码
第一步,从GitHub获取最新版本的UglifyJS。若已安装Git,可通过控制台执行以下命令进行克隆:
git clone git://github.com/mishoo/UglifyJS.git
或者,也可以通过HTTP方式下载ZIP压缩包。解压后,项目目录结构如下所示:

第二步,创建一个新的项目文件夹(例如myApp),并将uglify-js.js文件及lib目录复制到该项目中,目录结构参考如下:

编写压缩脚本compress.js
第三步,在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); // 解析代码并获取初始抽象语法树(AST)
ast = pro.ast_mangle(ast); // 生成包含混淆后变量名的新AST
ast = pro.ast_squeeze(ast); // 生成经过压缩优化的AST
var finalCode = pro.gen_code(ast); // 此处为压缩后的代码
console.log(finalCode); 上述代码首先引入Node.js的文件系统模块fs,随后加载UglifyJS中的解析器(parser)和压缩器(uglify)模块。接下来的步骤展示了UglifyJS的标准压缩流程:解析源代码、混淆变量名、执行压缩优化,最后生成压缩后的代码字符串。
执行压缩与封装自动化函数
第四步,打开命令行工具,执行compress.js脚本。

控制台输出了压缩后的代码。好了,就这么简单。\n5,既然在node环境下,当然可以写一个函数直接读取源文件,压缩后输出到指定的目录。将以上代码封装到一个函数中,如下
第五步,既然运行在Node.js环境下,可以封装一个函数来直接读取源文件,压缩后输出到指定目录。将上述逻辑封装为一个函数,代码如下:
// 读取一个文件,压缩之
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
怎么在本地运行JavaScript脚本:Node.js下载安装与环境配置教程
2026-11-05 09:02:33
JavaScript开发环境怎么搭建:Node.js安装与VS Code配置指南
2026-11-03 23:36:59
JavaScript零基础入门:环境搭建与第一个Hello World
2026-11-03 23:34:09
NW.js 是什么:基于 Chromium 和 Node.js 的桌面应用框架
2026-11-03 15:14:00
nvm、n 和官方安装包:哪种 Node.js 升级方式更适合你
2026-11-03 14:54:28
