构建过程:读取文件,将文件转换,再写入到另外一个位置

三个核心概念:读取流(输入)---转换流(加工)--- 写入流(输出)

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;
}

 

posted on 2021-03-04 15:14  phantom_yy  阅读(119)  评论(0)    收藏  举报