Nodemon看太多的文件

我对nodemon的警告信息感到困惑:

myproject $ nodemon index.js 26 Nov 11:14:31 - [nodemon] v1.2.1 26 Nov 11:14:31 - [nodemon] to restart at any time, enter `rs` 26 Nov 11:14:31 - [nodemon] watching: *.* 26 Nov 11:14:31 - [nodemon] starting `node index.js` 26 Nov 11:14:31 - [nodemon] watching 26,084 files - this might cause high cpu usage. To reduce use "--watch". 

如果我统计所有的文件,我会得到:

 myproject $ find . | wc -l 16628 

绝大多数这些文件都在.gitnode_modules下, node_modules都应该被nodemon忽略。 任何想法可能是什么原因造成的?

(我会--watch使用--watch

我承认,与计数相比,文件数量有点让人费解,但一个好的select可能是将您的nodemon更新到最新的1.3.0版本:

 npm uninstall -g nodemon npm cache clean npm install -g nodemon 

该更新修复了许多错误和烦恼,包括优先于监视规则的忽略规则,以及忽略常见目录(例如.git和.sass-cache)的新默认选项(旧版本1.2并没有很好地完成这项工作。 )

如果您使用--verbose选项启动nodemon ,您将看到类似于以下的输出:

 ... [nodemon] files triggering change check: .git\index.lock [nodemon] changes after filters (before/after): 1/0 [nodemon] files triggering change check: .git [nodemon] changes after filters (before/after): 1/0 [nodemon] files triggering change check: .git [nodemon] changes after filters (before/after): 1/0 ... [nodemon] files triggering change check: node_modules\jade [nodemon] changes after filters (before/after): 1/0 ... 

这个输出是在我搞乱了.gitnode_modules文件夹中的一些文件的情况.git node_modules在我的Gruntfile.js我已经明确地为这些文件夹设置了ignore选项,但是你不需要像nodemon 默认的那样完成:

 //Gruntfile.js excerpt grunt.initConfig({ ... //configure nodemon nodemon: { options: { ignore: ['.git/', 'node_modules/', etc..], ... //other options .... } } 

所以它看起来像nodemon跟踪文件系统中发生了什么,即使在被忽略的dirs。经过一段时间nodemon的代码我注意到,它build立文件观察员recursion从cwd开始。
你可以看到在输出changes after filters (before/after): 1/0文件变化检查对忽略的目录列表(这就是filter的意思)。如果该文件在手表dirs然后nodemon它是事情(重新启动,执行选项等)。