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

nodejs压缩css及js工具

时间:2015-12-15 12:35:23      阅读:1124      评论:0      收藏:0      [点我收藏+]

标签:nodejs   css   js   compress   

1. 安装nodejs

2. 安装cssmin。 npm install cssmin -g   

3. 安装yuicompressor。npm install yuicompressor -g

4. 设置NODE_PATH到全局C:\Users\Administrator\AppData\Roaming\npm\node_modules (默认nodejs全局目录) 

5. 创建source目录,创建dist目录

6. 创建compress.js

var fs = require(‘fs‘);
var cssmin = require(‘cssmin‘);
var compressor = require(‘yuicompressor‘);
	
var sourceDir = "source";
var distDir = "dist";
var fileNames = fs.readdirSync(sourceDir);
var fileIndex = 0;	
	
compressFile(fileNames[fileIndex]);

function compressFile(fileName){
	if(fileName==null){
		return;
	}
	
	var sourceFileName = fileName;
	var sourceFilePath = sourceDir+"/"+sourceFileName;
	
	var suffix = getSuffix(fileName);
	
	
	if(suffix=="css"){
		compressCssFile(fileName);
		return;
	}else if(suffix=="js"){
		compressJsFile(fileName);
		return
	}
	compressFile(fileNames[++fileIndex]);
	
}
	
function compressCssFile(fileName){
	var sourceFileName = fileName;
	var sourceFilePath = sourceDir+"/"+sourceFileName;
	
	var compressedFileName = sourceFileName.replace(".css","")+".min.css";
	var compressedFilePath = distDir+"/"+sourceFileName;
	
	var css = fs.readFileSync(sourceFilePath, encoding=‘utf8‘);
	var min = cssmin(css);
	fs.writeFile(compressedFilePath,min,function(err){
		if(err==null){
			console.log("compress file["+sourceFileName+"] to file["+compressedFileName+"] successfully ...");
			compressFile(fileNames[++fileIndex]);
		}else{
			console.log("encounter error : "+err);
		}
	});
}

function compressJsFile(fileName){
	
	var sourceFileName = fileName;
	var sourceFilePath = sourceDir+"/"+sourceFileName;
	
	var compressedFileName = sourceFileName.replace(".js","")+".min.js";
	var compressedFilePath = distDir+"/"+compressedFileName;
	
	compressor.compress(sourceFilePath, {
		charset: ‘utf8‘,
		type: ‘js‘,
		nomunge: true,
		‘line-break‘: 80
	}, function(err, data, extra) {
		
		fs.writeFile(compressedFilePath,data,function(err){
			if(err==null){
				console.log("compress file["+sourceFileName+"] to file["+compressedFileName+"] successfully ...");
				compressFile(fileNames[++fileIndex]);
			}else{
				console.log("encounter error : "+err);
			}
		});

	});
}
	
function getSuffix(fileName){
	var index = fileName.lastIndexOf(".");
	return fileName.substring(index+1);
}	

7. 将要要所的文件放入source目录,执行compress.js(命令node compress),将文件压缩至dist目录。

nodejs压缩css及js工具

标签:nodejs   css   js   compress   

原文地址:http://antlove.blog.51cto.com/10057557/1723130

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