watch监控修改的文件
上线之后对css,js,等作一个压缩,合并,编译的操作.
把less,sass源文件通过编译器编译成css文件,利用node 写的一个工具自动化编译,压缩,合并.打包上线.
var fs = require("fs");
var filedir = "./perfect/source";
fs.watch(filedir,function(ev,file){
//console.log(ev + "/" + file);
fs.readdir(filedir,function(err,dataList){
var arr =[];
dataList.forEach(function(f){
if(f){
var info =fs.statSync(filedir + "/" +f);
//console.log(info);
//console.log(f);
if(info.mode == 33206){
arr.push(filedir + "/" +f);
}
}
});
//console.log(arr);
//读取数组当中文件的内容,并合并.
var content ="";
arr.forEach(function(f){
var c= fs.readFileSync(f);
//console.log(c);
content += c.toString() + "\n";
});
console.log(content);
fs.writeFileSync("./perfect/js/index.js",content);
})
})
//只要有一个文件发生了变化,我们就需要对这个文件夹下面的所有子文件进行递归操作进行读取,然后合并。
//to be continued
/*
* fs.readdir(path[, options], callback)
* path <string> | <Buffer> | <URL>
* options <string> | <Object>
* encoding <string> 默认 = 'utf8'
* callback <Function>
* 异步的 readdir(3)。 读取一个目录的内容。 回调有两个参数 (err, files),
* 其中 files 是目录中不包括 '.' 和 '..' 的文件名的数组。
* 可选的 options 参数用于传入回调的文件名,它可以是一个字符串并指定一个字符编码,
* 或是一个对象且由一个 encoding 属性指定使用的字符编码。
* 如果 encoding 设为 'buffer',则返回的文件名会被作为 Buffer 对象传入。
* 这就是 前端所谓的自动化构建工具*/