chokidar.watch(paths, [options])
-
构造一个chokidar监听实例。
-
paths
- 一个字符串或者是一个数组,描述监听的文件或者文件夹的路径
- options
- 对象数据类型,常用配置项:
persistent
:bollean,与原生fs.watch
一样,表示是否保护进程不退出持久监听,默认值为true
ignored
:string,所要忽略监听的文件或者文件夹ignoreInitial
:bollean,表示是否对增加文件或者增加文件夹的时候进行发送事件,默认值为false表示add/addDir会触发事件cwd
:string类型,没有默认值,类似于appBasepath,监听的paths
所相对的路径。usePolling
:bollean,表示是否使用前面提到的fs.watchFile()
进行轮询操作,由于轮询会导致cpu飙升,所以此选项通常在需要通过网络监视文件的时候才设置为true
即使用fs.watchFile()
,默认值为false
depth
:number类型,没有默认值,如果设定则表示限定了会递归监听多少个子目录。
- 对象数据类型,常用配置项:
eg:
const chokidar = require('chokidar') chokidar.watch('testFolder', { persistent: true, ignored: /(^|[/\])../,//忽略点文件 cwd: '.',//表示当前目录 depth:99//到位了.... }).on('all', (event, path) => {//监听除了ready, raw, and error之外所有的事件类型 console.log(event, path); });
运行该代码之后:
表明在实例化监听对象的时候,因为默认ignoreInitial: false
,chokidar会发emmit add/addDir
事件,而此时要是在options对象中增加了ignoreInitial: true,
表明忽略监听初始化追踪的栈事件,则在实例化得时候就不会捕捉到add/addDir
事件了
此外,chokidar也提供了更加多的事件层次,通过更多的options配合做到对文件的更好的监控,其中支持的事件有:
事件名称 | 意义 |
---|---|
add | 新增文件时触发 |
addDir | 新增文件夹的时候触发 |
unlink | 对应的文件的删除 |
unlinkDir | 对应的文件夹的删除 |
change | 文件内容改变时触发 |