有一个项目,想用nodejs 做一下文件夹目录下所有文件的 监听,
当文件夹目录下 增加了 文件的时候,就执行某个脚本
如何监听 是否有新的文件生成呢,不是文件修改 ,是有新的文件添加了
grunt-watch
用chokidar吧,这个模块比较成熟。
我忍不住了啊
年轻人,你需要
npm install chokidar --save
为什么呢?
Node.js fs.watch:
不会再OSX上显示文件名
当你在OSX用编辑器编辑文件的时候不会触发事件
经常会连续触发两次事件
没有提供一个好的接口去递归文件
等等
Node.js fs.watchFile:
经常在处理事件的时候会挂掉
没法递归文件
过高的CPU占用率
让我们再看看数据
所以用Chokidar是个好主意
使用fs.watch函数,这个函数是专门用来对文件(或目录)进行监控的。
1. 函数原型
fs.watch(filename[, options][, listener])
2. 举例
(1) 使用的代码如下:
var fs = require('fs');
fs.watch('/home/su/node/tmp', {
persistent: true, // 设为false时,不会阻塞进程。
recursive: false
}, function(event, filename) {
if (event === 'change') {
console.log('检测到新增文件。');
if (filename) {
console.log('文件名:', filename);
}
}
});
(2) 在目录下增加一个文件:
touch a.txt
(3) 结果在控制台打印:
检测到新增文件。
文件名: a.txt
更详细的说明,参考API文档。
这东西 为啥不用 Gulp呢~