构建过程:读取文件,将文件转换,再写入到另外一个位置
三个核心概念:读取流(输入)---转换流(加工)--- 写入流(输出)
const fs = require('fs');
const { Transform } = require('stream');
exports.default = () =>{
//文件读取流
const read = fs.createReadStream('normalize.css');
//文件写入流
const write = fs.createWriteStream('normalize.min.css');
//文件转换流
const transform = new Transform({
transform:(chunk,encoding,callback) => {
//核心转换过程实现
//chunk => 读取流中读取到的内容(Buffer)
const input = chunk.toString();
///\s+/g,去掉空格;/\/\*.+?\*\//g,去掉注释;
const output = input.replace(/\s+/g,'').replace(/\/\*.+?\*\//g,'');
//callback是一个错误优先的回调函数,如果没有发生错误的话,第一个参数可以传入null
//output是转换完的结果
callback(null,output);
}
})
//把读取出来的文件流导入写入文件流
read.pipe(transform) //转换
.pipe(write); //写入
//通过return的方式可以根据流的状态判断这个任务是否执行完成
return read;
}

浙公网安备 33010602011771号