var fs = require('fs'); var jsp = require("uglify-js").parser; var pro = require("uglify-js").uglify; function jsMinifier(flieIn, fileOut) { var flieIn=Array.isArray(flieIn)? flieIn : [flieIn]; var origCode,ast,finalCode=''; for(var i=0; i origCode = fs.readFileSync(flieIn[i], 'utf8'); ast = jsp.parse(origCode); ast = pro.ast_mangle(ast); ast= pro.ast_squeeze(ast); finalCode +=';'+ pro.gen_code(ast); } fs.writeFileSync(fileOut, finalCode, 'utf8'); } //jsMinifier('./file-src/test2.js', './file-smin/test-min.js'); //单个文件压缩 jsMinifier(['./file-src/test.js','./file-src/test2.js'], './file-smin/test-min.js'); //合并压缩
var cleanCSS = require('clean-css'); function cssMinifier(flieIn, fileOut) { var flieIn=Array.isArray(flieIn)? flieIn : [flieIn]; var origCode,finalCode=''; for(var i=0; i origCode = fs.readFileSync(flieIn[i], 'utf8'); finalCode += cleanCSS.process(origCode); } fs.writeFileSync(fileOut, finalCode, 'utf8'); } //cssMinifier('./file-src/indexw_20120913.css', './file-smin/index.css'); //单个文件压缩 cssMinifier(['./file-src/index_20120913.css','./file-src/indexw_20120913.css'], './file-smin/index.css'); //图片 var imgMinifier = require('node-smushit'); //imgMinifier.smushit('./file-src/images', {recursive: true}); //递归 imgMinifier.smushit('./file-src/images');
使用示例:如果压缩js直接在命令行使用命令即可
uglifyjs jquery-2.1.3.min.js bootstrap.min.js jquery.goup.min.js jquery.scrollLoading-min.js ./kindeditor/plugins/code/prettify.js -o min.js
最后多个js会被压缩成一个min.js
如果压缩css,则需要编写上面的脚本,命名为cssmin.js
然后利用node命令在命令行中运行
node cssmin.js
最后多个css会被压缩成一个index.css