码迷,mamicode.com
首页 > Web开发 > 详细

使用node的插件UglifyJs来合并和压缩文件

时间:2016-01-06 11:54:55      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

code:

 1 var fs = require(‘fs‘);
 2 var jsp = require("./UglifyJS-master/uglify-js").parser;
 3 var pro = require("./UglifyJS-master/uglify-js").uglify;
 4 var finalCode=‘‘;
 5 function jsMinifier(flieIn) {
 6     var flieIn=Array.isArray(flieIn)? flieIn : [flieIn];
 7     var origCode,ast;
 8 
 9     var getAllFiles = function (dir) {
10         var filesArr = fs.readdirSync(dir);
11         for(var j = 0; j < filesArr.length; j++) {
12             var isDir = fs.lstatSync(dir+‘/‘+filesArr[j]);
13             if(isDir.isDirectory()){
14                 getAllFiles(dir+‘/‘+filesArr[j]);
15             }else {
16                 readFile(dir+‘/‘+filesArr[j]);
17             }
18         }
19     }
20      function readFile(filename){
21         origCode = fs.readFileSync(filename, ‘utf8‘);
22         ast = jsp.parse(origCode);
23         ast = pro.ast_mangle(ast);
24         ast= pro.ast_squeeze(ast); 
25         finalCode +=‘;‘+ pro.gen_code(ast);
26      }
27      for(var i=0; i<flieIn.length; i++) {
28         var isDir = fs.lstatSync(flieIn[i]);
29         if(isDir.isDirectory()) {
30             //为目录,获取目录下所有的文件。
31             getAllFiles(flieIn[i]);
32         }else {
33             readFile(flieIn[i]);
34         }
35     } 
36 }
37 jsMinifier(process.argv[2]);
38 fs.writeFileSync(process.argv[3], finalCode, ‘utf8‘);

运行:

  node jsMinifier /data/samba/iyy_dev/index/assets/models/wirelesswebim need.js 

使用node的插件UglifyJs来合并和压缩文件

标签:

原文地址:http://www.cnblogs.com/liuyinlei/p/5104767.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!