【分享】NODEJS 运用 UGLIFYJS 模块 做批量 JS 压缩
发布于 2年前 作者 spemoon 4319 次浏览

node初学者,轻喷。。。有啥好的意见,望指点。

原先挂在自己wiki上,后来比较喜欢这里的社区氛围来着,就拿过来了。原文地址

windows底下用uglifyjs批量压缩, 考虑到bat脚本实在不适合前端=。=,

用node写个批量压缩js的函数,方便、快速,分享之!

uglifyjs在这

代码相对比较简单,一看就懂,直接贴代码:

var fs  = require('fs'); 
var jsp = require("./uglify-js").parser;
var pro = require("./uglify-js").uglify;

// 批量读取文件,压缩之

    function buildOne(fileIn, fileOut) {
    
        if (fileIn.length > 0) {
    
            var finalCode = [];
    
            var origCode = '';
    
            var ast = '';
    
            for (var i = 0,len = fileIn.length; i < len; i++) {
    
                origCode = fs.readFileSync(fileIn[i], 'utf8');
    
                ast = jsp.parse(origCode); 
    
                ast = pro.ast_mangle(ast); 
    
                ast = pro.ast_squeeze(ast);
    
                finalCode.push(pro.gen_code(ast), ';');
            };
        }
    
        fs.writeFileSync(fileOut, finalCode.join(''), 'utf8');
    }
    //批量的话写多个一起执行即可
    buildOne(['../lib/slides.jquery.js', '../tpl/header_notice.tpl.js'], '../compile/home.min.js');

保存成compile.js, 直接node命令运行即可

完整代码在这

5 回复

其实稍微改进一下就是个不错的小工具了~ 学习一下process.argv可以是它更完善一些。 如果加上目录遍历可能会更方便。 加油,动手就会进步~

嗯,不错,多谢。不知道有没有能将node代码转成可执行文件的东东?

@leizongmin 你给传授一下经验。 exe目前好像没办法。。。除非用webkit,但那就要加个界面了。

@saighost 可以用这种方法来替代转exe:

xxx.js    // 这个程序文件
node.exe  // Node命令
run.cmd   // 批处理文件,内容: node xxx.js %*

然后打包好,要安装在哪台电脑就解压到哪里,然后执行run.cmd就能运行了

回到顶部