美文网首页
node-chokidar 实时监听并合并文件

node-chokidar 实时监听并合并文件

作者: 云桃桃 | 来源:发表于2019-05-06 17:52 被阅读0次

发现node-watch 以及本身自带的watch在我的windows电脑当对文件增删改查时候,总是多次监听,经度娘指引,发现chokidar工具比较好用,附上大神的参考链接,当然举一反三也可以做别的实时监听操作,这个没有考虑嵌套文件的操作具体的可以自行递归循环文件。

var chokidar=require('chokidar'),
    fold='./pro-01/source/',
    fs=require('fs');
    watcher = chokidar.watch(fold, {
    ignored: /[\/\\]\./, persistent: true});

    var log = console.log.bind(console);

// 文件添加,改变,删除 的时候执行操作
watcher.on('add', function(path) {
        log('File', path, '文件添加');
    })
    .on('addDir', function(path) {
        log('Directory', path, '文件夹内添加');
    })
    .on('change', function(path) {
        // 1. 删除生成的new.js
        // 2.读取文件夹下的文件列表
        // 3.获取每个文件中的所有内容
        // 4.将内容写入到new.js
        var fileArr=[],
         content='',mergeFile=fold+'new.js';
        // 先删除合并文件
        fs.unlinkSync(mergeFile);
        //  读取文件夹列表
        fs.readdir(fold, function (err,fileList) {
            fileList.forEach(function (f) {
                var info=fs.statSync(fold+f);
                switch(info.mode){
                    case 16822:
                        console.log('[文件夹]'+f);
                        break;
                    case 33206:
                        fileArr.push(fold+f);
                        break;
                }
        });
        // 获取每个文件中的所有内容
    fileArr.forEach((filePath)=>{
                var c=fs.readFileSync(filePath);
            content+= c.toString()+'\n';
    });
    // 写入到文件
    fs.writeFileSync(mergeFile,content);
    });


    log('File', path, '文件改变内容!!!!!!!!!!!!!');


    })
    .on('unlink', function(path) {
        log('File', path, '文件被移除');
    })
    .on('unlinkDir', function(path) {
        log('Directory', path, '文件夹被移除');
    })
    .on('error', function(error) {
        log('发生错误', error);
    })
    .on('ready', function() {
        log('Initial scan complete. Ready for changes.');
    })
    .on('raw', function(event, path, details) {
//        log('Raw event info:', event, path, details);
    })










相关文章

网友评论

      本文标题:node-chokidar 实时监听并合并文件

      本文链接:https://www.haomeiwen.com/subject/dwmdoqtx.html